paulwong

#

Java实现远程屏幕监视(转)

远程屏幕监视使得控制方可以在远程主机上监视其它一台机器,其主要实现原理就是将被控制机器的屏幕作为图片传送给监视方,在Java中要实现远程屏幕监视,主要解决以下几个问题即可:
1:将当前屏幕的显示内容捕捉为图片
2:将捕捉的图片发送到远程控制主机
3:远程控制主机接收到在本地显示
4:利用多线程重复上面三步达到实时更新

说起来怎么这么简单啊,今天试着做了一下远程屏幕监视的实验,发现还真不是这么简单的,把我的心得总结出来共享一下,希望对你有用。

将当前屏幕显示内容捕捉为图片

1Robot robot = new Robot();
2//要捕捉的屏幕显示范围,下面以全屏示例说明
3Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
4BufferedImage bm = robot.createScreenCapture(rect);

通过上面几行代码就把屏幕的当前显示内容保存为内存中的BufferedImage对象,这个确实简单.

将捕捉的图片发送到远程控制主机
要达到实时监控,怎么保证发送效率,在网络状况不良好时怎么保证发送时使用带宽
因为要不停地往控制机上发送图片,所以传送的图片不能太大,否则会影响实时性,当网络状况不好时,占用带宽过多则更加会给实时性带来严峻的考验,解决的方法有两个:
1:使用jpg格式的图片进行传输。
jpg是一种支持高度压缩技术的图片格式,它所存储的信息不包含透明度,同等质量的情形下相对来说比png,gif等格式的图片要小很多,当然,文件大小是以图像质量为代价的,如果你一味地追求压缩后的大小,图像质量就会受损了。我在实验中使用大小为28394字节的png图片经过jpg压缩后大小仅剩5815字节(不是PS,整个过程全部使用Java完成)。
2:将用图片生成的字节数据先压缩再传送。
这一步是仁者见仁,智者见智了,有人说没有必要,jgp格式的图片再压缩也小不了多少。确实是这样的,我在实验中把5815字节大小的jpg经过zip压缩后为大小变为5702,有点小作用,实际应用中压缩与否就看你了(压缩其它格式的图片效果可能会明显一点,我在实验中把一个大小为883078字节的bmp图片压缩后大小仅为16849字节,很可观,达到了52:1)。

我能想到的就是这两点了,欢迎各位仁智双全的人补充。下面就是这两点用到的Java技术,Java高手就直接跳过吧。

使用Java将图片处理成jpg格式
1//outputstream就是要写入处理后的jpg图片的输出流,要保存到文件的话就用FileOutputStream
2JPEGCodec.createJPEGEncoder(outputstream).encode(bm);
3ImageIO.write(bm, "jpg", outputstream);

这两种方法有什么差别呢?别的我不知道,就平均效率来说,第二种是第一种的2倍,我实验中转换了10次,使用的时间分别是125和250(单位是百分之一毫秒,机子有点慢的说).

把图片数据转换为字节数组
1ByteArrayOutputStream bos = new ByteArrayOutputStream();
2JPEGCodec.createJPEGEncoder(bos).encode(bm);
3// 上句也可以用 ImageIO.write(bm, "jpg", bos)实现
4bos.flush();
5byte[] data = bos.toByteArray();

将生成的字节数组进行zip压缩
1ZipOutputStream zos = new ZipOutputStream(bos);
2zos.setLevel(Deflater.BEST_COMPRESSION);
3//下面我以ScreenCapture.jpg说明
4zos.putNextEntry(new ZipEntry("ScreenCapture.jpg"));
5zos.write(data);
6zos.closeEntry();

好了,这个时候就可以把字节数组发往监控机器了,如果你发了,你就知道,问题又来了(不会吧!)。
1:既然是采用多线程发送多张图片,那么对于一张图片,接收方怎么知道你发完了呢?
2:如果要发其它的数据,比如鼠标点击等,接收方又怎么区分什么时候发的是图片,什么时候发的是其它的……

对于这两点问题,最直接的解决方法是当数据发送完成后关闭发送字节的输出流,第二次发送时重新建立连接(网上确实有人这样肆无忌惮地做),这种方法采用不采用就看良心了(汗)。我采用的解决方法是,每次发送数据前都告诉接收方要发什么东西(解决问题2),同时告诉它我发了多少字节(解决问题1),接收方只要接收了这么多字节数,就表示本次发送完成,最后再发送真正要发送的内容(图片等),说简单点就是,发送的消息结构如下:
【标识位 大小 消息】 
标识位:采用一个整型,其实是一个byte,占一个字节
大小:一个整型,占四个字节
消息:实际要发送的字节数组,长度就是字节数组的长度
这样接收方每次都是先读取一个整数,判断发送方是要发送什么消息,然后再判断消息的大小,然后再接收指定大小的消息,最后完成本次发送转入下一次接收工作。

采用Socket的方式进行消息的发送
1DataOutputStream dos = new DataOutputStream(client.getOutputStream());
2//SEND_IMAGE_SYMBOL是一个标识位,你随便定义,只要保证能与其它标识位区分就行
3dos.write(SEND_IMAGE_SYMBOL);
4
5dos.writeInt(data.length);
6dos.write(data);
7dos.flush();

啊,真不容易,终于发送出去了!不知道那边接收到了没有?那现在就去追踪报道吧。


远程控制主机接收消息 
 1//先要判断消息的类型
 2DataInputStream reader = new DataInputStream(socket.getInputStream());
 3int msgSymbol = reader.read();
 4//还记得这个SEND_IMAGE_SYMBOL吗
 5if (msgSymbol == SEND_IMAGE_SYMBOL)
 6{
 7    //哦,是要发送图片啊。让我看看你的图片有多大
 8    int msgSize = reader.readInt();
 9
10    //晕,你网速好也不用发这么大吧,我一次接收不完的,不过幸好我有准备
11    byte[] buffer = new byte[msgSize];
12    int length = 0;
13
14    while (length < msgSize)
15    {
16        int readSize = reader.read(buffer, length, msgSize - length);
17
18        if (readSize > 0)
19        {
20            length = length + readSize;
21        }

22        else
23        {
24            break;
25        }

26    }

27    //这是非常关键的,图片太大时一次性是读不完的,一定要使用缓冲重复读取。
28
29    //人家给我发送的消息是图片,怎么把字节数组还原成图片呢?
30    ByteArrayInputStream bis = new ByteArrayInputStream(buffer);
31    ZipInputStream zis = new ZipInputStream(bis);
32    //读取压缩的数据内容。
33    ZipEntry ze = zis.getNextEntry();
34    BufferedImage bi = ImageIO.read(zis);
35    //或者BufferedImage bi = JPEGCodec.createJPEGDecoder(zis).decodeAsBufferedImage();
36    //上面两行代码的差别已经说过了
37    //另外,如果在发送的时候你没有进行压缩,把上面的zis换成bis就行。
38
39
40    //有了BufferedImage对象,剩下的就是把它显示出来了进行远程"偷窥",任何一个支持图片显示的swing组件你都以用,我在实验中用的是JPanel,一个简单又支持双缓冲的组件。
41}


最后,就是使用多线程重复上面的步骤进行实时监控了。有什么问题欢迎指正。

本次实验进行的还算成功,成功偷窥了自己的桌面。谢谢你坚持看完我这么烂的文章,向你致敬!


下面是本次实验的运行图:


本文所使用的源代码:  源代码下载

posted @ 2010-02-10 23:45 paulwong 阅读(434) | 评论 (0)编辑 收藏

扫盲加扯淡——网友随笔画之云计算

     摘要: 今天在论坛看到网友自创的漫画,也许就是随笔画画吧, 且不说这位网友是否真的理解云计算(老实说,我也不清楚云计算是什么。),但确实是这位网友还是很有才的,能把自己的看法用这种形式表达出来,已经很难为可贵了。

“我看了N多的相关介绍也找不到一个好的解释,应该说是我看不懂吧。

谁给个简单通俗点的解释啊

我看了大概就像是网络硬盘吧可以上传电脑备份和文件的还可以在线编辑本人啥的,没啥特别的啊不是已经实现了,只觉的现在大头就是想把他们规划下罢了,
没啥特别的怎么那么多公司参与呢”
网络硬盘不是云计算。
————————
什么是云计算呢?
最开始,人们使用算盘。

  阅读全文

posted @ 2010-01-29 00:27 paulwong 阅读(350) | 评论 (0)编辑 收藏

华佗偏方

1.冠心病:干山楂30克,决明子10克,白菊花10克,加水稍煎当茶饮,每日一剂,半月愈.

  2.慢性干病:茵陈1两,大枣10个,白菊花10克,水煎服,每天一剂,连续服100天痊愈.

  3:肺结核:活乌龟一只,用泥包住,用暗火,慢火烧焦去泥,研成龟粉,开水冲服,每天三次,每次一钱,效果良佳,一百日即愈.(忌狗肉酸辣食物)

  4:阳痿不举:活虾2个,蛤蚧一点,一棵整葱白,把葱白花开,再把活吓,蛤蚧夹在葱里烤干研面,睡前服下,当晚见效.

  5:肝硬化腹水;纯绿豆面一斤,猪胆4个,用胆汁调绿面成丸,如绿豆大小,每天三次,每次6丸特效.

  6肺气肿:仙人掌2两,去皮切片,香油炸黄,加水一碗,烧开七次,剩半碗即可,每日暮途穷3次,7天痊愈.

  7全身浮肿;小麦麸炒黄1斤,加红糖拌匀,大枣汤冲服,每日2次,每次60克,连服15天即愈.

  8肺炎:鱼星草一把,炖七个荷包鸡蛋吃,每日一次,十天愈.

  9:高血压:每天用八个干香蕉皮,煮开水灌瓶内当茶喝,连续喝八天,不能减断,不级少于六十四个香蕉皮,连续喝八天痊愈.

  10:糖尿病:大白公鸡一只,杀掉去肠杂,内加陈醋四两,不加油盐,炖熟吃肉喝汤,三天吃一只,轻者吃1-2只,重的吃三只痊愈.

  11:肾炎:玉米须,西瓜皮,冬瓜皮,赤小豆各一两,煮汤代茶,持续服见奇效.

  12:肾炎腹水:巴豆,黄蜡,用大针串在巴豆上,放蜡灯烧出油后,沾蜂黄蜡吃,每日2次,每次4粒,连吃半月痊愈.

  13:羊羔风:落地羊羔一个全毛小鸡没出蛋壳的七个开白花的桃叶七片,共煮熟分几次吃完自愈.

  14:前列腺炎:生南瓜籽二两,每天分3次吃完,连续吃七天痊愈.或用黄瓜尾巴五个切碎,加水250毫升,煮开后分二次,喝完半月愈.

  15:血脂稠:每天用野山枣树根一尺长,短的也得配一尺长,玉米须干的一两,湿的二两,煮开水当茶喝,连续喝十五天痊愈,不再复发.

  16:贫血症:菠菜3两,猪肝3两,牛羊肝各2两,不加油盐,炖熟吃,每日1付分3次吃完,半月愈.

  17:胃病溃疡:白芨,疾黎各3钱,煎水服,每日一剂,煎两次服,外加2片痢特灵,七天痊愈.

  18:食道炎:木灰一两,红枣七个,用火烧红开水捕灭,研灰粉,红糖水冲服,每日一次,连服七日痊愈.

  19:慢性肠炎,每天4个个鸡蛋,分2次炒,炒时不加油盐水,连续吃半月特效.或用半熟的无花果,用单不用双,3,5,7,个都行,煮开水当茶喝,半月痊愈.

  20:红白痢疾:早晨起床后,空腹吃七个变蛋,每日一次,三日痊愈.或用拉拉秧头七个,加红白糖各一两,煮开水1碗喝下痊愈.

  21:低血压:甘草15克,桂枝30克,肉桂30克,水煎当茶大量喝,3日血压升高,少者2日恢复正常.

  22:气管炎,哮喘:红砂糖1000克,乌贼骨500克,乌贼骨焙干研面,与砂糖拌匀,每日三次,每次20克,半月痊愈,不再复发.

  23:肺结核,气管炎:羊肉500克,小麦仁(小麦去皮)60克,生姜9克,熬炖成稀粥,每天早晚各服一次,连服一月痊愈.

  24:性病流精不止:强的松片,盐酸四环素片,维生素c片,每天服三次,每次各2片,开水送下,3天除根,不再复发.

  25:梦遗滑精:荷叶100克,阴干辔烘干,研面,每日3次,每次十克,黄酒冲服,连服3日愈.

  26:甲状腺肿大:浙贝母,海藻,牡蛎各12克,共研未每日2次,每次6克,饭前用白酒一蛊送下,7天愈.

  27:胃下垂:猪肚半斤,白胡椒25克,同煮后,吃肚喝汤,每日一次,3日愈,胃下垂蹲着吃饭,时间长了就痊愈.

  28:治疗翻胃:牛乳一杯,韭菜法半杯,生姜2调羹,和匀微火上沌温,空腹饮用,对反胃,噎隔,大便炽结,呕吐有特效.

  29:经前腹痛:五灵脂10克,香附15克,炒香附时洒点酒,加水煎至300毫升,分早晚各服一次,两次痊愈.

  30:白带污臭:鸡蛋打一小孔,放入白果2克,蒸熟吃,每日2个,7日痊愈.

  31:阴痒滴虫病:蛇床子,苦参各15克,煮开水先熏后洗,两次痊愈.

  32:乳腺炎:鲜葡萄叶500克,捣烂敷患处,每天换一次,连用15天痊愈.

  33:慢性咽炎:干黄花菜30克,加水400毫升,文火煎烂,调入蜂蜜100毫升,每日3次,细嚼慢咽,7天痊愈.

  34:十二脂肠溃疡:维生素B6,28片,痢特灵28片,用法:第一天吃四次各四片,第二吃三次各二片,第三天吃两次各两片,第四天吃一次各两片.休息一天再服一剂痊愈.

  35:肾亏腰酸疼:黑豆50克,猪腰子4个,小茴香一钱,食盐少许,煮服吃,每日一剂,7剂痊愈.

  36:肾炎蛋白尿:黄芪,玉米须,糯稻根各30克,炒糯米15克,煎水当茶饮,每天一会,15天痊愈.

  37:肾结石:用拉拉秧根,煮开水当茶喝,连喝十天愈.

  38:胆结石:鸡内金粉15克,冲泡3百毫升开水浸泡15分钟后,即可服用,然后慢跑步,以助结石排出,连服1月痊愈.

  39:胆襄炎:玉米须2两,茵陈1两,山枳子5钱,广郁金5钱,水煎服,每日一剂,连服15剂痊愈.

  40:头痛病:麦麸半斤,加醋炒热后,分两袋装,放头上顶,两袋互换顶凉了加热,12小时不出屋一次愈.

  41:偏头痛:用萝卜汁滴鼻孔,仰卧,左边头疼滴右边鼻孔,右边头疼滴左边鼻孔,效果即佳.

  42:腮腺炎:活泥鳅20条,洗净加白糖250克,拌15分钟,用滑液糖浆涂患处,干了即换,每日数次,3日痊愈.

  43:急性扁桃体炎:取蝎尾一条,冰片0.3克,研细未,撒在小膏药中间,贴于患处,24小时更换一次,2至3次即愈.

  44:头晕:用才出小鸡的蛋壳,焙干研面,红糖水冲服,每日3次,每次10克,3日愈.

  45:鼻子出血:用七七芽一把,煮碗水喝下即愈.

  46:鼻炎,鼻窦炎:河里青苔鲜的,从潮湿处刮下,装入瓶内,纱布卷青苔条,塞入鼻孔内,4小时更换一次,五日即愈,鼻塞得用10至15日痊愈.

  47:耳内流脓:柳树上生的莪子2克,入老青瓦上焙干研面,香油调各,滴入耳内,用棉花堵住,一次愈神效.

  48:耳鸣:生猪皮,香葱各100克,同剁烂,稍加食盐,蒸熟后一次吃完,连吃3天.对疲劳过度,上火引起的有效.

  49耳聋:口内含一根大铁钉,耳上放块磁铁听,每天听六次,每次2分钟,数日愈.

  50:口腔炎:用食盐水漱口,再含冰糖即可,如溃疡,取鸡蛋壳软膜贴之,疼痛立止,2次痊愈.

  51:咳嗽无痰:冬瓜子一两,水豆腐一方,冰糖二两,炖熟服下有效如神,连用3次,不妨一试.

  52:牙疼:两方,神经性火牙疼,用蛇皮焙黄研面,白酒调稀糊,点在牙上立即止痛,30年不发;蛀牙痛,把猪肚洗净,

  刮一点粘膜,包在小沙布内,一次根治.

  53:黑黄牙变白:乌贼骨研面,拌牙膏刷牙,洁白如玉.

  54:洗眼仙方:中药青皮15克,皮硝15克,加六碗水煎至两碗水,装在瓶内,洗时倒点碗内,用小纱布棉花沾药水洗眼,每天三次,白内障和一切眼病洗之即愈.

  55:百虫入耳:猫尿滴耳内,百虫自出来,大蒜擦猫鼻自尿.

  56:鱼刺卡喉:鸭子倒提,取口中涎水咽下,鱼刺自化.别的骨头,用狗液咽下自化.

  57:少白头变黑发:1:柏壳装枕头,枕头半年即黑.2:黑芝麻三两,何首乌三两,加糖水煮沸分三次吃完,连吃半月后,白发逐渐变黑.

  58:脱发:取黑芝麻30克,大米100克,放锅内煮粥,当早饭食用,每天一剂,连服10天可再生新发.

  59:吐血:用韭菜根捣汁,兑冷开水喝特效.

  60:神经衰弱:浮小麦50克,甘草15克,大枣10克,酸枣仁15克,水煎服,每日一付即愈.

  61:感冒:二两生姜,二两红糖,把姜切碎,放锅内加水煎剩一碗喝下睡觉,一次即愈.

  62:咳嗽:香油一两,羊肝三两,炒熟吃,每日3次,3日即愈.痰多用萝卜捣绞汁二两,冰糖二两,煎服,每日早晚各服一次,3日愈.

  63:去口臭:甘草,桔皮,泡过的茶叶各五钱,研未先含后服,每日2次,3日即愈.

  64:大便干燥:1猪油一两,白糖一两,开水一杯冲服即愈.2:每天早晨喝一杯淡盐开水特效.

  65:小儿气管炎;石榴子一把,捣烂加冰糖调水喂,每天三次,三天断根.

  66:小儿腹泻:清凉油,涂小儿肚脐上,和尾骨上,每天2次,3天痊愈.

  67:小儿尿床:鲇鱼一条,放锅里加水煮,不加油盐,留一碗喝下,第一天尿,向后永不尿床.

  68:小儿夜哭:茶叶适量,放嘴嚼碎制成饼状,敷于小儿肚脐上立即停哭.

  69:小儿百日咳:鸡苦胆一个,红糖适量,两者调匀,每日一次,三日即愈.

  70:大人尿床:鸡肠子四付,洗净,放新瓦上加热,放鸡肠焙干研面,每日二次,每次10克,黄酒冲服,四付服完痊愈,再复发.

  71:疝气:用发岔的茄子,切碎煮熟吃,每天2次连吃5次愈.或用红糖1两,葵花杆瓤子一棵整个煮水喝,2次愈.

  72:多尿症:穿山甲15克,五香粉适量,放锅内加水炖熟食穿山甲肉,每日一次,4日即愈.

  73:荨麻疹:糯米60克,慢火把米炒开花,取米花炖汤服,每日一次,3日愈.

  74:麻疹:香菜500克,水烧开后,芫荽下锅煮一二开即可,先熏后洗手足,可治麻疹应出不出,或不透的.

  75:湿疹:中药苍耳子50克,煎水洗患处,每日二次,二日愈.

  76:全身痒:中药蛇床子30克,苦参30克,加雄黄盐少许,煮开水洗全身,每日一次,3日愈.

  77:失眠:白芍60克,鸡肝一具,先煎白芍,去药渣且,把鸡肝捣烂,煎温服,每晚一次,5次神效.

  78:打呃逆:鲜生姜30克,蜂蜜30克,生姜取汁去渣,与蜂蜜调匀一次服下却愈.

  79:细菌性腹泻:3-5棵大葱,去皮洗净,沾油象吃菜那样吃下,隔2-3小时再吃一次即愈.

  80:病后不语:服龟,每天2次,每次10克,3天后自能说话,(大蒜抹龟鼻自尿)

  81:口吃:舌头上放块小糖,慢慢练习说话,几日见效.

  82:红眼病:桑叶,菊花各15克,水煎,去渣,温洗患眼,一日二次,三日即愈.

  83:尿血:葡萄根,白糖各9克,水煎服,七日即愈.

  84:秀球风:桃叶,明矾捣泥擦患处,3次特效.

  85:晕船晕车:生姜二片,绿豆七粒,把二片姜中间夹七个绿豆粒,敷有寸脉内关上,胶布固定,神效.

  86:脸上粉刺:香油炸蝎子吃,每日10克,7日痊愈.

  87:脸上雀斑:柠檬一两,硼砂三钱,封瓶三天涂雀斑,每日一次,七日掉.

  88:脸上黑痣:生石灰,白碱面各3克,用酒精调糊状,点在黑痣上,四小时即掉.

  89:盗汗:五倍子9克,研末加水调成糊状,睡前敷肚脐上纱布固定,一次即愈.

  90:睡觉打呼噜:枕头不要太高,睡前点滴鼻通良效.

  91:头昏:生猪脑一个,加红糖一两,炖熟吃,每日一次,七日愈.

  92:减肥:海带50克,草决明75克,水煎服,每日一次,15日达到理想,不妨一试.

  93:鹅掌风:半斤食醋,加几滴白酒,烧开洗手,每天3至5次,5天即愈.

  94:米面不生虫:花椒壳,小茴香两把,用纱布包住,放在米面缸里,盖好常年不生虫.

  95:烧烫伤:用白纸泡白酒内,敷患处,要急时,纸干即换,消毒,止痛,好得快,不妨一试.

  96:痔疮:不论什么痔疮,用无花果树叶6片,煮开水连叶倒入桶内,先熏后洗,每天一次,3天痊愈.

  97:脱肛:用白矾,白芋各等份,捣成糊状,砂布包条寒入肛门,每天一次二小时取出,连续七次即愈.

  98:牛皮癣,头癣:用韭菜根30克,上药晒干研面,香油调糊状,涂患处,隔日一次,5次即愈.或用大蒜先擦刀锈,再擦癣,每日3次,顽癣10天愈.

  99:皮肤过敏:每日3次,每次吃15-25枚红枣,生食熟食,一般十天后见效.

  100狐臭:明矾30克,樟脑3克,冰片1.5克,共研细面,水调糊状擦患处,每晚一次,7日愈.

  101:冻疮:夏天冶冻疮冬天不冻,用芝麻中间的叶子,摘下擦冻过的皮肤一次,冷天再不冻.

  102.灰指甲:用冰醋酸泡指甲草,1斤冰醋酸,泡3两凤仙花连叶花梗一起泡在冰醋酸内,泡七天即可用,每天5次,1月即愈。

  103。脚汗:茄子棵、辣椒棵,煮开水洗脚,3日愈。

  104。脚气:白矾研细面撒在鞋子里边,每天撒一次,三次神效,不再复发,不妨一试。

  105:脚手裂:用醋煮杨树叶,泡脚手,3日即愈。

  106:脚鸡眼:中药鸭蛋子,去皮研面,先刺破患处点滴醋,再把药面抹上,胶布固定,3次愈。

  107:脚骨刺:没石子,牙皂各5克,研面,白醋精调糊状,敷患处固定,2天愈。

  108:脚手麻木:生姜60克,陈醋100克,煎汤洗1月愈。

  109:脚臭:开水里加茶叶和盐少许,水温,泡双脚搓洗,3次愈。

  110:脚腿抽筋:抽筋时用食指和拇指按压人中穴,按不抽筋为止,结其他部位也管用。

  111:刺猴:七个生菜鸡蛋在醋里泡七天,再把鸡蛋煮吃,每天吃一个,七个吃完,刺猴全掉。

  112:骨质增生:独头大蒜3头,萝卜一片,葱白一段,捣成糊状,滩在布上,敷患处,两小时去掉,过两天一次,5次愈。或生铁屑炒热加醋装布袋内敷患处,4次愈。

  113:肩周炎:食盐500克,小茴香80克,放锅内炒熟,装入布包内,敷患处,每晚一次,出汗止痛,四次即愈。

  114:关节炎:每日早倒退四-五百步,每晚用细黄砂1斤,食盐半斤,炒热后装布袋内,敷关节一次,再重的关节炎1月痊愈。

  115:类风湿关节炎:生姜,大葱,辣椒各9克,煮面条,乘热吃下,以出汗为度,每日2次,连续10天特效。

  116:坐骨神经痛:石决明,蛇脱,苏薄荷各15克,加黄酒一斤,煎30分钟,分2次服下,半月即愈。

  117:脉管炎:将田螺洗净,捣碎如泥敷患处,连用七天愈。

  118:腰腿疼:反走路膝盖不要弯曲,每天早晨起床后,倒走200至300步,治疗腰腿,关节炎有特效,不妨一试。

  119:小便不通:大葱白3棵,捣如泥,按揉关元穴即尿。

  120:夜晚磨牙:半夏,茯苓,桔红,石昌蒲,炒焦荷叶各6克,甘草5克,水煎服,每日一剂分2次服,3剂痊愈。

  121:戒烟妙法:中药槟榔一棵,钻一小孔,灌入烟油,放米水中泡四天,清水洗净,来烟瘾就闻,几日内戒掉。

  122:喝酒不醉:葛花,葛根二种不管哪种15克,加点茶叶,泡杯茶喝下,10分钟后,再去喝酒,如同喝水。

  123:酒醉立醒:冰片0。2克,甘草5克,冲水一杯喝下可醒。

  124:丹毒:用海蛰皮不要洗,接开敷患处,4小时换一次。或用地龙洗去泥,加白糖化液涂患处,每天3次,特效。

  125:食道癌:核桃叶一个,鸡蛋一个,把核桃叶切碎,同鸡蛋放锅内,不加油盐和水,单找个锅炒熟吃,每天3次,吃好为止。

  126:白癜风:用烧酒泡生姜7天,用生姜沾酒擦患处每日3次,每次3分钟,擦红为止,数日即愈。

posted @ 2010-01-12 23:44 paulwong 阅读(450) | 评论 (0)编辑 收藏

jbpm4.3与spring集成

jbpm4.2与spring集成有点问题,直接跟据它自己的“开发指南”提供的方法是不能集成的。在官网查到的信息是发布4.2时,忘记更新集成spring的文件。不过4.3已经把该bug改过来了。下面是集成方法。

版本:
jbpm4.3
spring2.5.6
mysql5.1.40

直接从jbpm4.3自带的文件到src目录:
从jbpm-4.3"install"src"cfg"hibernate"jdbc复制mysql.hibernate.cfg.xml到src目录,文件名改为hibernate.cfg.xml。
从jbpm-4.3"install"src"cfg"spring复制applicationContext.xml到src目录。
从jbpm-4.3"install"src"cfg"jbpm复制spring.jbpm.cfg.xml到src目录,文件名改为jbpm.cfg.xml。
修改applicationContext.xml、hibernate.cfg.xml的数据库配置信息,jbpm4.3与spring的集成就完成了,可以自己写测试文件测试,集成非常容易。

不过在applicationContext.xml和hibernate.cfg.xml两个文件都要改数据库信息有点麻烦,所以只复制applicationContext.xml、spring.jbpm.cfg.xml两个文件到src目录,把hibernate.cfg.xml的配置整进spring的配置文件applicationContext.xml中。
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans" 
         xmlns:aop
="http://www.springframework.org/schema/aop" 
         xmlns:context
="http://www.springframework.org/schema/context"
          xmlns:p
="http://www.springframework.org/schema/p"
         xmlns:tx
="http://www.springframework.org/schema/tx"
       xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation
="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
          http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>
 
 
<context:annotation-config />

<bean
  
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  p:location
="hibernate.properties"
  p:ignoreUnresolvablePlaceholders
="true" />
  
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
  
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
  
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    
<property name="dataSource" ref="dataSource" />
    
<property name="mappingResources">
        
<list>
            
<value>jbpm.repository.hbm.xml</value>
            
<value>jbpm.execution.hbm.xml</value>
            
<value>jbpm.history.hbm.xml</value>
            
<value>jbpm.task.hbm.xml</value>
            
<value>jbpm.identity.hbm.xml</value>
        
</list>
    
</property>
    
<property name="hibernateProperties">
        
<props>
                
<prop key="hibernate.dialect">${dataSource.dialect}</prop>
                
<prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop>
            
</props>
    
</property>
  
</bean>
  
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    
<property name="sessionFactory" ref="sessionFactory" />
    
<property name="dataSource" ref="dataSource" />
  
</bean>
  
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    
<property name="driverClassName" value="${dataSource.driverClassName}" />
    
<property name="url" value="${dataSource.url}" />
    
<property name="username" value="${dataSource.username}" />
    
<property name="password" value="${dataSource.password}" />
  
</bean>
</beans>


新建文件hibernate.properties,主要用来配置连接数据库信息

dataSource.password=123
dataSource.username
=root
dataSource.databaseName
=jbpmdb
dataSource.driverClassName
=com.mysql.jdbc.Driver
dataSource.dialect
=org.hibernate.dialect.MySQLInnoDBDialect
dataSource.serverName
=localhost:3306
dataSource.url
=jdbc:mysql://${dataSource.serverName}/${dataSource.databaseName}
dataSource.properties
=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}
dataSource.hbm2ddl.auto=update

以后要改数据库配置信息也只在这个文件修改就可以了。

测试用的流程swing.jpdl.xml

<?xml version="1.0" encoding="UTF-8"?>
<process name="swing" xmlns="http://jbpm.org/4.3/jpdl">
   
<start g="94,64,48,48" name="start1">
      
<transition g="-52,-22" name="A" to="A"/>
   
</start>
   
<task assignee="A" g="73,195,92,52" name="A">
      
<transition g="-52,-22" name="B" to="B"/>
   
</task>
   
<task assignee="B" g="266,192,92,52" name="B">
      
<transition g="-40,-21" name="end" to="end1"/>
   
</task>
   
<end g="290,327,48,48" name="end1"/>
</process>


测试代码

public class Main {
    
public static void main(String[] args)  {
        ClassPathXmlApplicationContext applicationContext 
= new ClassPathXmlApplicationContext("applicationContext.xml");
        applicationContext.start();
        ProcessEngine processEngine 
= (ProcessEngine)applicationContext.getBean("processEngine");
        ExecutionService executionService 
= processEngine.getExecutionService();
        TaskService taskService 
= processEngine.getTaskService();

        
//发布流程
        String deploymentId = processEngine.getRepositoryService().createDeployment()
        .addResourceFromClasspath(
"resource/swing.jpdl.xml").deploy();
        System.out.println(
"流程发布ID:"+deploymentId);
        
        
//启动一个流程实例
        ProcessInstance processInstance = executionService.startProcessInstanceByKey("swing");
        System.out.println(
"流程实例ID:" + processInstance.getId());

        
//A处理任务
        List<Task> taskList_A = taskService.findPersonalTasks("A");
        System.out.println(
"A待处理任务数:" + taskList_A.size());
        
if(taskList_A.size() > 0){
            Task task 
= taskList_A.get(0);
            taskService.completeTask(task.getId());
        }

        
        
//B处理任务
        List<Task> taskList_B = taskService.findPersonalTasks("B");
        System.out.println(
"B待处理任务数:" + taskList_B.size());
        
if(taskList_B.size() > 0){
            Task task 
= taskList_B.get(0);
            taskService.completeTask(task.getId());
        }

        
    }

}


附件是完整的集成文件和测试代码,仅在spring2.5.6测试过,要运行该部分代码,需要添加jbpm4.3和spring的相关库文件。
源代码:jbpm4.3-spring

posted @ 2010-01-08 12:40 paulwong 阅读(827) | 评论 (0)编辑 收藏

FCKeditor

     摘要: 在线编辑器对于我们作新闻产品之类的程序是很重要的,在网上找录了好了好一段时间,发现FCKeditor,跨平台的,正在进行的jsp项目正需要这款html在线编辑器。试用了一下FCKeditor,根据网上的文章小结一下:

1.下载
FCKeditor.java 2.3 (FCKeditot for java)
FCKeditor 2.2 (FCKeditor基本文件)
以下是下载地址:
http://www.fckeditor.net/download/default.html
  阅读全文

posted @ 2009-12-14 15:42 paulwong 阅读(133) | 评论 (0)编辑 收藏

抗癌药一剂

今天一位十几年没见的朋友请我们去吃饭,吃完在他公司闲聊时无意中说起他一个朋友的父亲得了癌症,被医生宣布只能回家等死了,有人送来了一个偏方,家人就是:死马只当活马医,试着吃起了这个方子,没想到吃了几贴就有了起色,就接着吃下去,现在已经是复查也查不出病症状了!于是这个朋友把这个方子拿来给了自己的亲戚吃,最近也有了起色!上网查了查这几味药也真的是抗癌的药,平时没事也可以吃,有清热解毒之功效.    

药方:红枣大的八粒,小的十粒(共十八粒)  
   铁树一叶
   半枝莲一两
   白花蛇舌草二两

服法:四味药为一剂可煎两次  第一次用水量大约十五碗煎两个小时,第二次约十碗水煎两小时,然后将药汤倒起日夜当茶饮服

说明:
    一 该药主治各种癌症.根据服法结果,已经治愈了肠癌,肝癌,子宫癌,胃癌等,除乳癌效果差点外,其他癌症都有良好效果,特别是肠癌,只服四到六小时就起异常效果.
    二 平时每月煎一次服用,因该药药性对脏腑之热素及生痔疮,热咳等症,服后都有确实生效且能彻底治愈
三 注意说明:半枝莲,清凉无毒,是排污草药,服后不能饮用开水,恐其冲淡药效,如果癌症三花(就是表面能看见烂的),可将刚生长的新鲜草药捣烂取其汁,将渣敷于患处,其汁用水热烧当茶喝,此药不分男女老少,服用三至四个月,方能彻底全愈,服用后大小便有浓血排出,这反映毒物,清除后即止,可免惊疑。

希望复印转发邻居亲友多作善事
附注:此方与六十六年十月二十五日中国时报第七版登刊之内容相同 。

posted @ 2009-12-08 20:39 paulwong 阅读(302) | 评论 (0)编辑 收藏

世界上最健康的作息时间表 大家对比下

7:30:起床。英国威斯敏斯特大学的研究人员发现,那些在早上5:22―7:21 分起床的人,其血液中有一种能引起心脏病的物质含量较高,因此,在7:21之后起床对身体健康更加有益。

  打开台灯。“一醒来,就将灯打开,这样将会重新调整体内的生物钟,调整睡眠和醒来模式。”拉夫堡大学睡眠研究中心教授吉姆·霍恩说。


  喝一杯水。水是身体内成千上万化学反应得以进行的必需物质。早上喝一杯清水,可以补充晚上的缺水状态。

7:30―8:00:在早饭之前刷牙。“在早饭之前刷牙可以防止牙齿的腐蚀,因为刷牙之后,可以在牙齿外面涂上一层含氟的保护层。要么,就等早饭之后半小时再刷牙。”英国牙齿协会健康和安全研究人员戈登·沃特金斯说。

8:00―8:30:吃早饭。“早饭必须吃,因为它可以帮助你维持血糖水平的稳定。”伦敦大学国王学院营养师凯文·威尔伦说。早饭可以吃燕麦粥等,这类食物具有较低的血糖指数。


8:30―9:00:避免运动。来自布鲁奈尔大学的研究人员发现,在早晨进行锻炼的运动员更容易感染疾病,因为免疫系统在这个时间的功能最弱。步行上班。马萨诸塞州大学医学院的研究人员发现,每天走路的人,比那些久坐不运动的人患感冒病的几率低25%。

9:30:开始一天中最困难的工作。纽约睡眠中心的研究人员发现,大部分人在每天醒来的一两个小时内头脑最清醒。

10:30:让眼睛离开屏幕休息一下。如果你使用电脑工作,那么每工作一小时,就让眼睛休息3分钟。

11:00:吃点水果。这是一种解决身体血糖下降的好方法。吃一个橙子或一些红色水果,这样做能同时补充体内的铁含量和维生素C含量。

13:00:在面包上加一些豆类蔬菜。你需要一顿可口的午餐,并且能够缓慢地释放能量。“烘烤的豆类食品富含纤维素,番茄酱可以当作是蔬菜的一部分。”维伦博士说。


14:30―15:30:午休一小会儿。雅典的一所大学研究发现,那些每天中午午休30分钟或更长时间,每周至少午休3次的人,因心脏病死亡的几率会下降37%。

16:00:喝杯酸奶。这样做可以稳定血糖水平。在每天三餐之间喝些酸牛奶,有利于心脏健康。

17:00―19:00:锻炼身体。根据体内的生物钟,这个时间是运动的最佳时间,舍菲尔德大学运动学医生瑞沃·尼克说。


19:30:晚餐少吃点。晚饭吃太多,会引起血糖升高,并增加消化系统的负担,影响睡眠。晚饭应该多吃蔬菜,少吃富含卡路里和蛋白质的食物。吃饭时要细嚼慢咽。

21:45:看会电视。这个时间看会儿电视放松一下,有助于睡眠,但要注意,尽量不要躺在床上看电视,这会影响睡眠质量。

23:00:洗个热水澡。“体温的适当降低有助于放松和睡眠。”拉夫堡大学睡眠研究中心吉姆·霍恩教授说。


23:30:上床睡觉。如果你早上7点30起床,现在入睡可以保证你享受8小时充足的睡眠。


任何试图更改生物钟的行为,都将给身体留下莫名其妙的疾病,20、30年之后再后悔,已经来不及了。

  一、晚上9-11点为免疫系统(淋巴)排毒时间,此段时间应安静或听音乐。


  二、晚间11-凌晨1点,肝的排毒,需在熟睡中进行。


  三、凌晨1-3点,胆的排毒,亦同。

四、凌晨3-5点,肺的排毒。此即为何咳嗽的人在这段时间咳得最剧烈,因排毒动作已走到肺;不应用止咳药,以免抑制废积物的排除。

  五、凌晨5-7点,大肠的排毒,应上厕所排便。

六、凌晨7-9点,小肠大量吸收营养的时段,应吃早餐。疗病者最好早吃,在6点半前,养生者在7点半前,不吃早餐者应改变习惯,即使拖到9、10点吃都比不吃好。

  七、半夜至凌晨4点为脊椎造血时段,必须熟睡,不宜熬夜

posted @ 2009-11-05 14:18 paulwong 阅读(123) | 评论 (0)编辑 收藏

HD Audio音频驱动2.36版For Vista/Vista-64/Win7/Win7-64

升级WINDOWS7后,识别不了声卡,现在出了最新的驱动,不知能否解决:
http://drivers.mydrivers.com/download/322-128837-Realtek-ALC861-ALC880-ALC882-ALC883-ALC8/



发现还有好多人也出现这个问题,有一高手发布了修正程序:
http://news.mydrivers.com/1/147/147950.htm

posted @ 2009-11-03 11:42 paulwong 阅读(174) | 评论 (0)编辑 收藏

在WINDOWS 7工具条中增加显示桌面按钮

在WINDOWS 7中,显示桌面的按钮在最右面,如果是宽屏的话,使用很不方便。
工具条在任务栏上右键——工具栏——新建工具栏,在打开的对话框中输入“%Appdata%\microsoft\Internet Explorer\Quick Launch”,点击“选择文件夹”按钮,这样就会把原来的快速启动菜单显示出来,这中间有一个“在窗口之间切换”快捷方式和一个“显示桌面”快捷方式,你喜欢那个就把哪个放在第一,在工具栏上点右键,把“显示标题”和“显示文本”前的钩都去掉,如果任务栏使用大图标,还可以在右键菜单的“查看”里改为使用大图标,然后把Quick Launch工具栏拉到左边

posted @ 2009-11-03 10:10 paulwong 阅读(1237) | 评论 (0)编辑 收藏

Java POI 讀取 Excel Cell 資料

     摘要: 在 Java 領域中, 存取 MS Excel 檔案資訊, 大都透過 POI 進行,

下面介紹大致介紹一下 POI 相關函數 :
  阅读全文

posted @ 2009-10-27 21:49 paulwong 阅读(1580) | 评论 (1)编辑 收藏

仅列出标题
共110页: First 上一页 96 97 98 99 100 101 102 103 104 下一页 Last