版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用java实现一个简单的远程监控程序一般的远程监控软件都是用c或者C+等语言开发的,而使用java如何来实现相同的功能呢。首先我们先介绍一下一个简单的远程监控程序的实现原理。功能一,远程屏幕监视必须要有监控端与被监控端,而且程序保持启动。被监控端获取本机的屏幕截屏发图给监控端。监控端在本地窗口中显示被监控端发送过来的图像。(2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了。功能二,远程控制必须要有监控端与被监控端,而且程序保持启动。在监控端监视窗体上执行鼠标点击事件。记录步骤(2)中的鼠标点击的坐标,及键值发送到被监控端。被监控接受鼠标坐标,及键值,然后再本地屏幕上模拟
2、同样的点击动作。0K,现在看下具体的java与语言是如何实现上述功能的。使用java语言要实现截屏的功能就要依靠java类库中的一个有趣的类java.awt.Robot类【俗称Java机器人】了功能一,远程屏幕监视/客户端抓取屏幕快照GuiCamera.javaJava代码旦BufferedImagescreenshot=2(newRobot().createScreenCapture(,newRectangle(O,0,(int)size.getWidth(),4(int)size.getHeight();/客户端发送快照SendThread.javaJava代码至image=gc.snap
3、Shot();/保存为临时文件Filefile=newFile(temp.png);FileOutputStreamfileout=newFileOutputStream(file);ImageIO.write(image,png,fileout);fileout.close();/读取图像FileInputStreamfileIn=newFileInputStream(file);intlen=(int)file.length();/建立字节数组bytebuf=newbytelen;fileIn.read(buf,0,len);/发送out.write(buf,0,len);out.flus
4、h();/间隔500毫秒6,8101213141161,18120212223242Thread.sleep(500);61Objectoptions=/监控端接受图像,Snap.javaJava代码审publicvoidrun()while(flag)bytebuf=newbyte102400;tryimgStream=newBufferedInputStream(socket.getInputStream();imgStream.read(buf);ImageIconicon=newImageIcon(Toolkit.getDefaultToolkit().createImage(buf)
5、;lab.setIcon(icon);Filefile=newFile(1.jpg);FileOutputStreamfileOut=newFileOutputStream(file);fileOut.write(buf);fileOut.close();repaint();26272830312333435363,383404142434461Objectoptions=45setVisible(true);46System.out.println(读取图象成功!)47catch(Exceptionex)4ex.printStackTrace();49flag=false;505152Sys
6、tem.out.println(服务器停止);53功能二,远程控制监控端记录鼠标操作Snap.javaJava代码54内部类,主要功能监听鼠标事件。记录坐标。5,classkeyAdapetextendsKeyAdapter57键盘监听适配器5publicvoidkeyTyped(KeyEvente)59if(e.getKeyChar()=27)按ESC键626364666768697071727,747767778798081828,确定,取消;intn=JOptionPane.showOptionDialog(null,是否退出程序?,远程监控系统,JOptionPane.OK_CANCE
7、L_OPTION,JOptionPane.QUESTION_MESSAGE,null,/dontuseacustomIconoptions,/thetitlesofbuttonsoptions0);if(0=n)System.exit(0);publicvoidmouseClicked(MouseEvente)System.out.println(双击了鼠标);intx=e.getX();inty=e.getY();if(tempSocket!=null)newCommandMsg(2,tempSocket,x,y).start();publicvoidmousePressed(MouseEv
8、ente)if(e.BUTTON1=MouseEvent.BUTTON1)System.out.println(你按了鼠标左键);intx=e.getX();inty=e.getY();if(tempSocket!=null)newCommandMsg(3,tempSocket,x,y).start();48586888990919293949,9699899100101102103监控端发送坐标Snap.javaJava代码104publicvoidrun()105out.println(eventType+,+x+,+y);10out.flush();107客户端获取鼠标坐标后,在本机相同
9、坐标位置模拟一个鼠标点击操作Coop.javaJava代码108publicvoidrun()109while(flag)110try111Strings=in.readLine();112decode(s);113switch(method)114/这里的man实际也是Robot的一个实例。115case1:11man.mouseMove(x,y);117break;118case2:119man.mouseMove(x,y);120man.mousePress(InputEvent.BUTTON1_MASK);121122123124121261271281291301,11,2133134131,6137138139man.mouseRelease(InputEvent.BUTTON1_MASK);break;case3:man.mousePress(InputEvent.BUTTON1_MASK);break;case4:man.mouseRelease(InputEvent.BUTTON1_MASK);break;default:break;catch(IOE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图画和相片用框产品供应链分析
- 照相制版机产品供应链分析
- 色拉脱水器市场发展前景分析及供需格局研究预测报告
- 红外线衣项目运营指导方案
- 夜灯产品供应链分析
- 建筑光伏遮阳行业市场调研分析报告
- AI辅助精神健康护理行业营销策略方案
- 男用美发剂细分市场深度研究报告
- 蜡像项目营销计划书
- 商业橱窗布置行业营销策略方案
- 麦克斯韦速率分布律
- 4-6岁数学思维能力诊断测试题
- 肉牛屠宰公司组织机构加各个岗位职责
- 3角的初步认识(课件) 数学二年级上册 (共14张PPT)人教版
- 中小学智慧校园建设标准及评价指标体系
- 延髓背外侧综合征
- 样品承认流程(共4页)
- 金蝶kis专业版操作手册V20
- 房地产估价公司估价质量管理制度
- 烟气焓计算复习课程
- 井下安全阀简介
评论
0/150
提交评论