JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
写在前面
前面一节《组态软件里面对远程桌面调用的方法》中介绍了如何在组态软件里面调用mstsc.exe程序实现对另外一台计算机远程桌面的调用,这种方法相对容易理解。事实上,微软也考虑到了程序猿们可能会用到调用远程桌面这个功能,所以提供了RDP 的ActiveX控件,直接拉出来,配置相关的属性就可以轻松实现调用了,而且这种调用不会在本地计算机的任务管理器里面占用太多资源。
下面我们以RsviewSE软件为例来测试一下如何调用RDP的ActiveX控件。需要说明一下,RSViewSE软件有的版本的可能有兼容性的问题,拉出来的RDP的ActiveX控件没办法用脚本控制,所以需要使用其他方式实现。本次实验使用的是8.0版的RSViewSE软件。
王老湿在以前的文章里面介绍过如何在RSViewSE软件里面拉一个ActiveX控件(如有需要的小伙伴可自行在“剑指工控”中查找一下哦
),此处就不再赘述,直接拉出来使用。
首先,在RSViewSE的画面里拉一个RDP控件
拉一个你电脑上版本最高的RDP控件
修改一下控件名称,为了调用的时候方便一点
然后在画面上再拉3个文本输入框,用于填写目标计算机的IP地址,目标计算机的用户名,目标计算机的远程桌面连接密码。
设置RDP控件和文本框输入控件、按钮控件的属性面板都为VBA控制
然后进入脚本编辑页面
在按钮控件的按下或弹起事件里面写脚本内容
在编写脚本之前,我们需要先了解一个RDP控件的属性和方法。
在VBA的编辑页面内打开View>ObjectBrowser
在对象浏览器里面找到RDP控件,然后点击下面所属的类
然后就可以找到关于这个RDP控件的所有属性和方法
另一种获取RDP控件属性的办法就是去微软官网搜索,官网搜索出来的都会有比较详细的解释说明。
大家可以自己搜索到这些内容后了解一下RDP的一些参数。RDP控件的属性和方法能实现的功能和mstsc.exe里面的功能一样。
OK,了解了RDP控件的一些参数后,在VBA里面写脚本。
思路:
为避免每次点击时重复发送连接指令,应该在执行连接命令之前判断当前是否已经建立了远程桌面连接,如果已经建立,则不执行连接命令,反之就继续执行RDP的连接命令。另外,需要考虑RDP连接完以后的要显示的区域大小,远程桌面的分辨率等因素。
连接效果如下:
如果你的RSViewSE画面里面插入RDP控件的时候一直报错,那就需要使用另外一种方法实现——VBA脚本里面的窗体
首先需要在VBA编辑器里面拉出来一个窗体
然后在这个窗体里面拉个RDP的控件
然后在工具栏就会显示这个RDP的控件
拖拽至窗体上
双击窗体,编写连接脚本
SE的画面再调用时只需要调用这个窗体的显示即可
运行效果如下:
如果在运行时提示如下所示的错误
你需要修改注册表
HEKY_CURRENT_USER\Software\Microsoft\VBA
OK
以上就是如何在组态软件里面调用RDP控件的方法,要实现RDP的更多功能就需要细致地研究微软的RDP控件的相关介绍,王老湿此处只是为大家提供一个思路,更多的需要大家自己去体会和实验。希望能帮助到大家。