当前位置:首页 > 编程技术 > 易语言 > 正文内容

易语言实现远程桌面监控源码,制作远程控制软件的一些思路

车厘子1年前 (2023-04-18)易语言2339

  今天给大家分享一个通过易语言实现的远程桌面监控例子,主要使用了易语言自带的远程服务支持库中的请求客户端远程服务两个类。基本原理是客户端利用时钟组件不间断的向服务器端发送截图,以实现远程实时显示客户端桌面,其中时钟周期决定了显示的刷新率。

源码下载:

远程监控屏幕.zip

 首先将源码中的服务端编译成exe可执行文件,可以在本机电脑直接运行服务端,并且点击启动服务器按钮。服务端运行截图:

image.png

   启动服务端后,可以在本机电脑直接运行客户端,客户端要输入服务端显示的IP地址以及端口号连接到服务端。客户端连接知识点:

  1. 如果是本机电脑测试,服务端也运行在本机电脑,客户端直接输入本地IP/内网IP和端口即可连接。

  2. 如果客户端要发给其他用户测试,本机电脑需要有独立公网IP才可以。(家庭宽带都是动态拨号IP,并且还隔了一层路由器,客户端发给其他网络的用户测试肯定是连接不上的。但是有一种方法是通过路由器端口转发来实现,在这里我就不展开来讲了)

  3. 服务端如果直接运行在云服务器上,客户端就可以直接输入外网IP进行连接。

  客户端运行截图:

image.png

客户端通过输入对应IP和端口号并点击连接服务器,如果端口号和IP地址没有问题的话,就会显示连接成功,此时客户端即可点击启动按钮就可以实时发送截图到服务端,运行演示视频:

制作远程控制软件思路

    如果要实现像向日葵、ToDesk这种远程控制软件的,单纯是通过一个客户端和服务端是完全不够的。因为前文我们讲到普通家庭带宽网络是没有固定的公网IP,因此服务端软件无法运行在个人电脑上,所以想要实现真正的远程控制软件,必须要分别开发服务器端、客户端(被控端)、控制端,当然被控端和控制端可以整合在同一个软件中。其中服务器端要运行在有公网固定IP的云服务器或者物理服务器上,服务器端主要负责数据的中转以及调度,具体实现方法如下图:

image.png

使画面变流畅的一些思路

  通过这个易语言的例子,大家可以发现服务端显示的画面略有卡顿,这是因为我们设置了时间周期是300毫秒,如果想要正常的一个不卡顿的效果,理论上可以将时间周期设置成30毫秒,这样刷新率快了,服务端显示的画面就会非常流畅。但是这样有一个问题会出现,那就是我们客户端的截图图片没有经过任何压缩处理,图片质量会很大,将会导致30毫秒内数据发送不完,同样会造成卡顿,具体解决思路如下:

  • 客户端截图时经过压缩图片以及调整图片大小后再发送,服务端收到数据和解压缩再显示。

  • 客户端开始实时发送截图前,可以将客户端的桌面背景置为纯黑色也会减少一些截图的图片大小。(向日葵、ToDesk也有这种方案)

  • 自己建立一种通信协议,比如客户端可以通过分批发送数据,例如客户端屏幕分辨率为1920*1080,客户端可以把这个屏幕分成N等份进行截图依次发送(以此来减少单个数据包的大小),然后服务端依次收到图片数据进行拼接显示。

远程控制的一些思路

  远程控制无非就是实现控制端除了可以实时显示被控端桌面的画面以外,还可以进行鼠标移动和点击操作,以及键盘映射操作。其实原理也很简单,具体的一些思路如下:

  • 控制端将鼠标移动到被控端桌面画面窗口时,通过控制端窗口大小以及图片像素、还有被控端的屏幕分辨率进行相应的像素转换,并且控制端将转换后的鼠标坐标数据发送给被控端,即可做到控制端鼠标位置与被控端鼠标位置一致,当控制端鼠标点击后再把点击命令发送给被控端执行即可。

  • 键盘映射就比较简单了,当被控端进入远程控制模式的时候,控制端按下对应的键就发送数据给被控端执行模拟按键即可。

  好了,以上就是本片文章的全部内容,本文分享的源码以及一些思路只供学习交流,切勿用作损害他人利用以及非法行为。

本文链接:https://yun.ha.cn/post/107.html 转载需授权!

分享到:

扫描二维码推送至手机访问。

版权声明:本文由云蛤社区发布,如需转载请注明出处。

技术交流QQ群:657091037

部分文章和资源从互联网中收集,如有侵权 联系站长删除。

本文链接:https://yun.ha.cn/post/107.html

标签: 云蛤原创
分享给朋友:

“易语言实现远程桌面监控源码,制作远程控制软件的一些思路” 的相关文章

易语言写一个课堂随机点名小程序【附源码】

易语言写一个课堂随机点名小程序【附源码】

 使用易语言核心支持库写的一个课堂随机点名程序,涉及以下知识点:文件读写操作时钟的应用数组的应用演示图片:部分源码:.版本 2 .支持库 shellEx .程序集 窗口程序集_启动窗口 .程序集变量 集_点名是否开始, 逻辑型,&...

易语言怎么导入支持库

易语言怎么导入支持库

   易语言的支持库文件有两种文件格式,分别是.fne和.lib   将.fne放在易语言安装目录的lib目录下,如图:将.lib文件放在易语言安装目录的static_lib目录下,如图:启用支持库安装支持库过后,需要重启易语言,然后依次点击易语言顶部菜单:工...

易语言静态编译vc6+vc7+vc8+vc9+vc2010+链接器转换

易语言静态编译vc6+vc7+vc8+vc9+vc2010+链接器转换

可以通过修改静态编译链接器来降低软件的误报!使用方法:把压缩包里的文件解压到易语言目录,管理员方式运行“静态编译转换器.e”选择更改链接即可!推荐大家使用VC6连接器蓝奏云下载 提取码:4m3t...

易语言防止截图例子,截图时窗口黑屏

易语言防止截图例子,截图时窗口黑屏

  易语言防止截图需要用到一个dll命令,需要调用user32.dll的SetWindowDisplayAffinity方法,即可实现防止窗口被截图。具体用法如下,首先易语言顶部菜单依次选择 插入->DLL命令,然后复制代码粘贴到DLL命令编辑器中。.版本 2 .DL...

易语言做一个黄灯频闪效果

易语言做一个黄灯频闪效果

  最近有小伙伴问我用易语言如何做一个黄灯频闪效果(某一个组件的颜色交替变换,实现颜色频闪),其实原理很简单,只需要使用一个时钟的周期事件来交替切换颜色。涉及易语言知识点如下:易语言核心支持库易语言组件的运用时钟的运用例子演示截图:主要核心代码:源码下载:黄灯闪烁.rar...

评论列表

1
1 IP:山东省
4个月前 (12-18)

控制鼠标和控制键盘怎么写,有点看不懂

车厘子 IP:贵州省 回复:
进入远程窗口后,本地做键盘按键记录和鼠标位置记录。将按键值和鼠标位置同步发送到客户机
3个月前 (01-10)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。