蓝杰java远程控制实现

蓝杰java远程控制实现

ID:37376006

大小:252.57 KB

页数:15页

时间:2019-05-22

蓝杰java远程控制实现_第1页
蓝杰java远程控制实现_第2页
蓝杰java远程控制实现_第3页
蓝杰java远程控制实现_第4页
蓝杰java远程控制实现_第5页
资源描述:

《蓝杰java远程控制实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、蓝杰项目讲义只为不凡而来!www.NetJava.cnjavaKe远程控制模块实现1.远程控制原理........................................................22.关键技术解析........................................................33.被控制端实现........................................................64.控制端实现......................

2、..................................11蓝杰内部资料,请勿传播1蓝杰项目讲义只为不凡而来!www.NetJava.cn1.远程控制原理设想我们javaKe的功能并不止于即时通信,它还应为两个用户间提供远程控制,或叫远程协助的功能;即javaKe用户A可通过客户端,操作管理它的好友用户B所在的机器,在这个过程中,网络结构示意图如下:JK服务器jk客户端Bjk客户端AA在自己的电脑上可以看到B的桌面;当A移动鼠标,按下键盘时,对应的动作和结果同时会发生在B机器上;在这个过程中,通信的数据必须通过服

3、务器转发,本节示例中,我们省略了服务器转发的过程,以求简洁。要实现A对B的远程控制,基本思路示意图如下:发送屏幕截图发送事件对象数据jk客户端Bjk客户端A1.在A机器上要能实时看到B机器桌面的变化,可通过B机器上的JK客户端,将B机器的屏幕截图数据发给A,A接收到后,再以图片形式显示的方式实现,B截图的时间可根据网络带宽、控制的实时性要求设定在每秒10~20次为宜。2.控制端,即A机器上的用户移动鼠标,按下键盘---在B机器发送来的屏幕图片上,A机器上的控制程序接收这些事件,并将事件数据发送给B机器的被控制端程序;被控制端

4、程序根据接收到A发来的鼠标,键盘事件数据,用程序驱动B机器的对应数据的鼠标,键盘事件(例如在java中使用java.awt.Robot类对象驱动鼠标)。A对B实现远程控制时,流程图如下:蓝杰内部资料,请勿传播2蓝杰项目讲义只为不凡而来!www.NetJava.cn控制端A被控制端B建立Socket连结发送屏幕截图显示图片鼠标键盘事件发送事件数据事件回放简单的说就是:被控制端循环的发送本机屏幕截图给控制端,并接收控制端传事的事件数据在本机相对位置做回放;控制端显示接收到的屏幕图片,并将在图片上接受到的事件数据发送给控制端。这其

5、中关键的技术就是事件数据传送和事件的回放,请看下节解析:2.关键技术解析1.使用Robot对象回放事件:在java中,java.awt.Robot类是个有趣的东东,它可以在后台驱动鼠标,键盘执行各种动作,如下示例代码,importjava.awt.Toolkit;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;publicclassRobotTest{//Robot使用示例publicstaticvoidmain(String[]args)throw

6、sException{java.awt.Robotrobot=newjava.awt.Robot();//创建一个机器人对象//取得当前屏幕大小Toolkittk=java.awt.Toolkit.getDefaultToolkit();java.awt.Dimensiondm=tk.getScreenSize();//计算屏幕中心点intx=(int)dm.getWidth()/2;inty=(int)dm.getHeight()/2;robot.mouseMove(x,y);//将鼠标移动到屏幕中心robot.mouse

7、Press(InputEvent.BUTTON1_MASK);//按下鼠标左键robot.mouseRelease(InputEvent.BUTTON1_MASK);//松开鼠标左键蓝杰内部资料,请勿传播3蓝杰项目讲义只为不凡而来!www.NetJava.cnrobot.keyPress(KeyEvent.VK_ENTER);//模拟按下回车键robot.keyRelease(KeyEvent.VK_ENTER);robot.keyPress(KeyEvent.VK_SHIFT);//按下SHIFT键for(inti=0;i

8、<10;i++){robot.keyPress('A'+i);//在屏幕上打字robot.keyRelease('A'+i);Thread.sleep(500);}robot.keyRelease(KeyEvent.VK_SHIFT);//松开SHIFT键for(inti=0;i<11;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。