版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用java实现一个简单的远程监控程序一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢。首先我们先介绍一下一个简单的远程监控程序的实现原理。功能一,远程屏幕监视(1)必须要有监控端与被监控端,而且程序保持启动。(2)被监控端获取本机的屏幕截屏发图给监控端。(3)监控端在本地窗口中显示被监控端发送过来的图像。(4)(2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了。功能二,远程控制(1)必须要有监控端与被监控端,而且程序保持启动。(2)在监控端监视窗体上执行鼠标点击事件。(3)记录步骤(2)中的鼠标点击的坐标,及键值发送到被监控端。(4)被监控接受鼠标坐标,及键值,然后再本地屏幕上模拟同样的点击动作。OK,现在看下具体的java与语言是如何实现上述功能的。使用java语言要实现截屏的功能就要依靠java类库中的一个有趣的类java.awt.Robot类【俗称Java机器人】了功能一,远程屏幕监视//『客户端』抓取屏幕快照GuiCamera.javaJava代码BufferedImagescreenshot=(newRobot()).createScreenCapture(newRectangle(0,0,(int)size.getWidth(),(int)size.getHeight()));//『客户端』发送快照SendThread.javaJava代码image=gc.snapShot();//保存为临时文件Filefile=newFile("temp.png");FileOutputStreamfileout=newFileOutputStream(file);ImageIO.write(image,"png",fileout);fileout.close();//读取图像FileInputStreamfileIn=newFileInputStream(file);intlen=(int)file.length();//建立字节数组byte[]buf=newbyte[len];fileIn.read(buf,0,len);//发送out.write(buf,0,len);out.flush();//间隔500毫秒Thread.sleep(500);//『监控端』接受图像,Snap.javaJava代码publicvoidrun(){while(flag){byte[]buf=newbyte[102400];try{imgStream=newBufferedInputStream(socket.getInputStream());imgStream.read(buf);ImageIconicon=newImageIcon(Toolkit.getDefaultToolkit().createImage(buf));lab.setIcon(icon);Filefile=newFile("1.jpg");FileOutputStreamfileOut=newFileOutputStream(file);fileOut.write(buf);fileOut.close();repaint();setVisible(true);System.out.println("读取图象成功!");}catch(Exceptionex){ex.printStackTrace();flag=false;}}System.out.println("服务器停止");}功能二,远程控制『监控端』记录鼠标操作Snap.javaJava代码//内部类,主要功能监听鼠标事件。记录坐标。classkeyAdapetextendsKeyAdapter{//键盘监听适配器publicvoidkeyTyped(KeyEvente){if(e.getKeyChar()==27){//按ESC键Object[]options={"确定","取消"};intn=JOptionPane.showOptionDialog(null,"是否退出程序?","远程监控系统",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,//don'tuseacustomIconoptions,//thetitlesofbuttonsoptions[0]);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(MouseEvente){if(e.BUTTON1==MouseEvent.BUTTON1){System.out.println("你按了鼠标左键~~~~~~~~~~~");intx=e.getX();inty=e.getY();if(tempSocket!=null){newCommandMsg("3",tempSocket,x,y).start();}}}......}『监控端』发送坐标Snap.javaJava代码publicvoidrun(){out.println(eventType+","+x+","+y);out.flush();}『客户端』获取鼠标坐标后,在本机相同坐标位置模拟一个鼠标点击操作Coop.javaJava代码publicvoidrun(){while(flag){try{Strings=in.readLine();decode(s);switch(method){//这里的man实际也是Robot的一个实例。case1:man.mouseMove(x,y);break;case2:man.mouseMove(x,y);man.mousePress(InputEvent.BUTTON1_MASK);man.mouseRelease(InputEvent.BUTTON1_MASK);break;case3:man.mousePress(InputEvent.BUTTON1_MASK);break;case4:man.mouseRelease(InputEvent.BUTTON1_MASK);break;default:break;}}ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国航天科技集团有限公司人员招聘考试题库及答案详解
- 2026年海南电信人员招聘参考题库及答案详解
- 2026年中国电力科学研究院有限公司人员招聘考试参考试题及答案详解
- 2026年海口市烟草专卖局人员招聘考试题库及答案详解
- 2026年河北省国富农业投资集团有限公司人员招聘笔试参考试题及答案详解
- 2026年岢岚县教师招聘考试备考试题及答案解析
- 2026年卫星通信有限公司人员招聘笔试参考试题及答案详解
- 2026年石嘴山市烟草专卖局人员招聘考试题库及答案详解
- 2026年农林牧渔技术推广服务行业年度综合研究报告及未来五至十年合规风险与监管应对
- 2026年河南水利投资集团有限公司人员招聘考试备考题库及答案详解
- 第一月考过关测试卷(试卷)2026-2027学年五年级语文上册统编版(含答案)
- 现代农业与生态农业
- 2026年特种设备安全管理人员A证考试题库(含答案)
- 3.1《买文具》课件 -2026-2027学年五年级上册数学北师大版
- 2026年湖南工业职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 电子档案和档案数字化副本移交接收规范
- 医院职工绩效考核制度(2026版)
- 临床科学防治颈椎病守护颈部健康关键策略
- 信托业务监管分类说明(试行)
- 连续油管侧钻工艺技术
- 外挂悬挑式花篮盘扣脚手架安全专项施工方案7.17
评论
0/150
提交评论