JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
上周有个朋友突然给我发信息,说他们领导让他实现一个功能:将正在运行的SE画面自动按时间截屏并以图片方式保存到指定目录下。
乍一听似乎这个要求有点变态哦,截屏不就按键盘上的PrtSc键不就实现了吗?
然而另外一想,这似乎也是一个体现自动化从业者知识面的问题,自动化嘛,干嘛不做成自动截屏的呢?
思路:
要实现截屏功能,需要调用到Windows系统的截屏程序,但是一般情况下,Windows截取的屏幕文件是存储在剪贴板的,所以我们还需要用脚本控制剪贴板,将里面的文件另存为图片文件。至于按时间截屏就比较简单了,在画面拉一个数字显示控件,关联系统时间的秒,在这个数字显示控件的数据改变事件里面去判断时间数据是否等于我们需要截图的时间即可。
PS:题外话,RSViewSE软件的Event里面的程序是在Server端执行的,在Client端无法正常执行。如果有SE高手有更好的解决办法可以留言给我。
OK,开始实干
在SE里面拉一个按钮和数字显示控件,,在数字显示控件里面关联系统时间秒
打开数字显示控件的属性面板,选择为VBA控制
编写脚本实现调用截屏程序和剪贴板程序
首先做一些基本的函数申明,用于Windows的资源
编写子函数调用
手动按钮导出
自动根据时间导出
End
这个功能应该是比较小众的,我的认识里很少有人会需要这个截图的功能,如果需要记录数据直接将画面的当前数据转换到一个Excel表格里面保存起来或者使用报表功能就好了。
后记