开发远程控制软件时的屏幕监视设计思想 SocketSwingJNICC++
程序员文章站
2024-02-16 15:37:10
...
学软件的朋友们,在刚开始的时候大多人都有想要作黑客的梦想吧,当然了这个时候最佩服的软件就是,远程控制软件,看了这篇文章你会发现远程控制软件的开发其实也是很简单的。
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://dl.iteye.com/topics/download/c1b7acd2-c7ad-3753-8929-48424025d711
软件如下图所示:
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://dl.iteye.com/topics/download/c1b7acd2-c7ad-3753-8929-48424025d711
软件如下图所示: