给客户开发了一套软件,并部署在客户的服务器上。为了方便维护,开了远程控制。不过客户使用的是联通的网络,公司是电信网络,远程控制很慢,于是考虑如何降低网络流量,将远程服务器的屏幕分辨率降低、颜色数降低,不过操作还是很卡。
考虑到一般操作不需要实时刷新屏幕,只有点击鼠标或者输入字符后需要获取最新的屏幕图像,于是按照本思路自己写了一个远程控制的软件。
关键技术:
控制方式:
使用B/S方式,客户端直接用IE访问。
服务器端直接通过HTTP协议接收指令,经过搜索,Net直接提供了HttpListener用于处理HTTP通讯。
模拟鼠标操作:
直接调用API:mouse_event,网上介绍也比较多,我在其他项目中使用过,直接使用现有文件。
模拟键盘操作:
.Net直接有SendKeys发送按键,特殊按键都可以进行处理。
获取屏幕截图:
在网上搜索了一下,直接使用网上的代码。
将以上内容拼凑一下,软件就完成了。实际使用了一下,效果还不错。
使用方法:
将编译后目录下的“httpServer.exe”和“screen.htm”文件拷贝到服务器上,运行即可。
默认端口9999,也可在可执行文件后跟上端口号。
客户端使用IE服务服务器IP和对应端口即可,例如“http://127.0.0.1:9999/”
鼠标控制:直接点击图像即可。
键盘控制:在文本框中输入键盘指令,发送即可。
图中的示例为: 1回车2TAB键2.1,然后执行全选操作(Ctrl+A),具体特殊键参见SendKeys帮助。
说明:
必须远程登录后才能获取到图像和执行指令。(必须和远程控制等软件配合使用,不能单独使用。)
可以自行修改screen.htm文件,将一些常用鼠标键盘操作制作为脚本,一键执行,例如自动登录软件等。
附件下载:
源码和可执行文件:/Files/Pharaoh/httpServer.zip
源码为VS2008格式。