Java开发的屏幕监控案例源代码:http://www.blackswansoft.com/lanxiangjian/article/20110111144508390.html
屏幕监视设计思想一(理论型--初步设计):
1.用Java中自带的截屏方法进行截屏,然后生成图片,保存在本地(比如C://temp//1.jpg)主机上(被监视端)
2.用socket将本地的图片文件传送到指定的电脑上(监视端),并且保存在该电脑上(比如C://temp//1.jpg)
3.用Java的swing写出一个显示图片的窗体,在监视端的电脑上运行并且将传送过来的图片(比如C://temp//1.jpg)显示出来。
????? 以上三个步骤是最原始的屏幕监视设计思路,然后我们再将以上三个步骤循环的有序执行,
????? 监视端显示图片的窗体再不停的刷新,我们就可以看到了被视端电脑屏幕的实时变化了,从而达到监视的效果。
?? 优点:
1.设计起来比较简单,并且比较容易理解,比较适合初级程序员设计。
?? 缺点:
1.在磁盘中产生了大量的图片文件,该文件很快就变成了垃圾文件,不适合应用到现实中。
2.如果被监视端的电脑处于静止状态(键鼠空闲),该循环仍在执行,性能上会有很大的浪费
3.需要很好的网速支持,为了达到比较清晰的效果,循环频率应该比较高些(比如每秒50次),只能在局域网中使用。
屏幕监视设计思想二(优化型--利用内存):
1.用Java中自带的截屏方法进行截屏,然后将截取的屏幕图片对象保存到一个图片对象里面(内存)
2.用socket将该图片对象传送到指定的电脑上(监视端)
3.用Java的swing写出一个显示图片的窗体,在监控端的电脑上运行并且将该图片对象显示出来。
?? 优点:
1.设计起来稍有难度,比较适合对socket有一定了解的程序员设计。
2.没有生成图片的这个过程了,避免垃圾文件的产生。
?? 缺点:
2.如果被监视端的电脑处于静止状态(键鼠空闲),该循环仍在执行,性能上会有很大的浪费
1.需要很好的网速支持,为了达到比较清晰的效果,循环频率应该比较高些(比如每秒50次),只能在局域网中使用。
屏幕监视设计思想三(高级型--运动检测):
1.首先对被视端电脑的鼠标和键盘添加上监听。
2.运动分析:
1.当发现鼠标移动时(从开始移动到停止移动)以一定的循环次数(比如50次)执行设计思想二中的流程。
2.当发现鼠标单击时(从右键或左键按下到起来)以一定的循环次数(比如50次)执行设计思想二中的流程。
3.当发现鼠标拖动时(从开始移动到停止移动)以一定的循环次数(比如50次)执行设计思想二中的流程。
4.当发现键盘点击时(从开始按下到起来)以一定的循环次数(比如50次)执行设计思想二中的流程。
?? 优点:
1.设计起来比较难度,而且最大的难度是Java自身不支持后台监听(仅能对鼠标做一定的监听,但并不能实现全面监听),
所以要借助与JNI(Java调用C语言,用C语言写出后台监听),比较适合对高级程序员设计。
2.没有生成图片的这个过程了,避免垃圾文件的产生。
3.当被监视端的电脑处于静止状态(键鼠空闲)时,监视过程停止,在性能上会有很大的提高。
?? 缺点:
1.需要很好的网速支持,为了达到比较清晰的效果,循环频率应该比较高些(比如每秒50次),只能在局域网中使用。
以上三种设计思想是我们想到并且总结出来的。或许并不是很好,仅供参考,如有比较好的设计方案多谢推荐。
我们在黑天鹅远控中使用的是第二种设计思想。
其实我一直还是很佩服"凌波多媒体教学"软件的设计,该软件可以将一台电脑的屏幕图像同时显示到几十台电脑上,而且也并不是很卡。
不知他们的屏幕监视设计原理是什么。
当屏幕监视设计出来之后,屏幕监控就很简单了。需要在监控端看到被控端屏幕的基础上,
再添加上将监控端的鼠标和键盘的操作传送到被控端,并且执行就可以了。
Java开发的屏幕监控案例源代码:http://www.blackswansoft.com/lanxiangjian/article/20110111144508390
详细解决方案
java远路设计思想
热度:378 发布时间:2012-09-02 21:00:34.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- java web 登录次数限制,该如何解决
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- 请教一个关于链接后缀的有关问题(java web 应用)
- java 系统单点登录解决方案
- java.lang.NumberFormatException: For input string: "id"该如何处理
- java.lang.NoSuchMethodException: setId([Ljava.lang.String;)解决方法
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- java web 受阻
- java.lang.IllegalStateException: No output folder,该怎么解决
- java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccess,该如何解决
- java 乱码有关问题 急求大神
- java EE错误如何解决阿,都是过了,没有能解决的!
- java 工程打包有关问题 多谢各位大神!多谢
- JAVA WEB导航条,该怎么处理
- java.sql.SQLException: Access denied for user 'root'@'localhost' (using password,该如何处理
- java 中Node 有关问题
- 关于 java 引述传递和值传递,你的知否
- 吐了,java Timer 终止不了。
- Java Web 学习中有关问题,请高手指教
- java web中的url地址小疑点。
- java web开发解决办法
- java.lang.NullPointerException解决方法
- 关于 java cast 有关问题,你明白不
- java ftp 下传和上载乱码有关问题
- java web项目上的一些文件