搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 【采集运维工具】完善脚本,智能延时

【采集运维工具】完善脚本,智能延时

2018-04-18
举报

是否还记得,我提到一个延时(Delay) ,那么这篇文章说说这个延时。OK,这篇文章以同步终端来举例,实际中你们灵活运用,任何采集相关脚本都需要这个思路的。


你在同步终端档案的时候是不是根据终端内用户数量不同,而同步的时间不同,用户越多,同步时间越长?那么我需要脚本实现智能等待,不固定一个等待的时间,什么时候同步完成,我们再执行下一步操作,涉及的知识点有找图(Findpic)及Do循环。

我们看下图,

【采集运维工具】完善脚本,智能延时在同步过程中,会提示“正在装载数据...”,而同步完成则会提示“终端数据同步请求发送成功!”,如下图

【采集运维工具】完善脚本,智能延时


那么我的思路就是点击同步终端档案后,循环含有“终端数据同步请求发送成功!”的图片,直到找到,则表示同步成功,我们则可以进行下一步。


做好准备工作,将“终端数据同步请求发送成功!”图片加入附件中,下面跟着我来做。


打开按键精灵的抓抓

【采集运维工具】完善脚本,智能延时

按键精灵先不做任何操作,找任意一个终端进行同步,待同步完成,提示“终端数据同步请求发送成功!”的时候,按“prtscn”,就F12右边第一个;现在打开按键精灵的抓抓,就会出现我们刚才抓取的图片,接着,框住“终端数据同步请求发送成功!”这几个字,松开鼠标后会弹出下面图片中的菜单

【采集运维工具】完善脚本,智能延时

我们选择“位图另存为”,然后将这个图片保存起来。再接着,将刚才保存的图片添加的我们脚本的附件中,如下图:

【采集运维工具】完善脚本,智能延时


那么准备工作已经做完了,就可以开始写脚本了,开始~~

什么读取Excel,for循环之类的我就不再讲了,还不懂的就看上一篇按键精灵的文章吧。对了,补充一下,上篇文章不涉及鼠标移动和点击,这里要涉及,我简单讲解下,移动即MoveTo,鼠标左键单击即LeftClick。嗯,鼠标移动的参数,你能想到,就是X坐标与Y坐标,那么如何来抓取坐标呢,有傻瓜式的操作,打开抓抓,会出现一个放大镜,那么我们利用放大镜来抓坐标点,如图:

【采集运维工具】完善脚本,智能延时


举例,如果要以终端资产来进行查询同步,就抓取终端资产输入框的坐标,这里说明下,一定要以唯一的来进行查询,比如终端资产,采集点编号。在SG186,鼠标移动到终端资产输入框后按热键,Ctrl+Alt+1,就可以抓取第一个坐标,以此类推,Ctrl+Alt+2就可以抓取第二个坐标。


同步的步骤也就是:重置(将资产输入框清空)、输入资产、查询、选中终端、同步终端档案,就这五个步骤,也就是要抓取5个坐标

下面我原封不动的把代码复制进来。//后表示注释,后面可以下载源文件,看看。

Call Plugin.Office.OpenXls("C:\Users\Administrator\Desktop\同步1.xls")//打开表格

For i = 1 To 9 //for循环

    Text = Plugin.Office.ReadXls(1, i, 1)//将资产编号返回到变量Text里

    //这里说傻瓜式的,点开左侧基本命令-鼠标命令-鼠标移动到,下面会有你抓取好的坐标,P1代表你抓取的第一个坐标,P2代表第二个。如下图所示:

【采集运维工具】完善脚本,智能延时


    //我们选择P1插入,就会自动生成命令了

    MoveTo 1819, 434//重置坐标

    Delay 100

    LeftClick 1

    Delay 300

    MoveTo 436, 252//终端资产输入框坐标

    Delay 200

    //稍微加一点点延时

    //移动了还要点击啊,这是配对的...

    LeftClick 1//左键单击,1代表1次

    Delay 100

    //终端资产框点击后,需要输入终端资产编号了

    SayString Text//输入资产编号

    Delay 100

    MoveTo 1768, 435//查询坐标

    Delay 100

    LeftClick 1

    Delay 500

    MoveTo 1752, 514//选中终端坐标

    Delay 100

    LeftClick 1

    Delay 400

    MoveTo 1866, 764//同步终端档案坐标

    Delay 100

    LeftClick 1

    Delay 400

    //下面开始重点了

    Do

        //如下图所示

这是找图命令的插入界面,我们将坐标改为我们的坐标,即“终端数据同步请求发送成功!”这几个字左上角的坐标与左下角的坐标,然后勾选“使用附件图片路径”,路径里图片名称填你刚才保存的名称

        FindPic 800, 500, 1100, 600, "Attachment:\同步成功.bmp", 0.9, intX, intY

        TracePrint "X坐标为:" & intX & "Y坐标为:" & intY

        If intX > 0 And intY > 0 Then 

            Exit Do

        End If        

        //我来解释下这个重点,意思就是按键精灵在点击同步终端档案后,会一直在我们指定800,500,1100,600这个屏幕范围内寻找“终端数据同步请求发送成功!”这个图片。不管是否找到,都会将坐标返回到intX和intY,只是,如果没找到,返回的是-1,-1,如果找到,会返回实际的坐标值,所以我们加了一个if判断,如果返回的坐标大于0,那么就代表,已经出现了同步成功字样,这时候我们就要退出循环(Exit Do),进行下一个

    Loop

    Delay 1200//这里一定要多加点延时,出现同步成功这个提示框要过会儿才会消失

Next  //for循环结束

Call Plugin.Office.CloseXls()//关闭表格

MsgBox "已完成"//提示完成



按照这个思路,你们可以试试写个脚本,在非流程挂表。


惯例,看看动态效果,我都没剪辑...最近确实事儿多啊


OK,完了,不知道理解没有,最好是自己去尝试做一下,按照这个思路,可以做很多不错的脚本的,比如我们这里是按坐标去点击的,但是你如果稍微移动一下,坐标变了你又得去改变坐标,那么你可以利用找图进行坐标加减(相对坐标)来执行移动操作,只是你要把屏幕范围选大一点,还有另外一种找字的,后面有时间再讲讲吧。

嗯,以后更新文章的频率就会低了,大概半个月到一个月一篇吧。多多留言,讲讲你们还不理解的,讲讲你们的需求,只要我能做,我会抽空写的,谢谢你们一直以来的支持!

源文件也给你们,放在按键精灵安装目录下的QMScript文件夹内,点击阅读原文下载,密码: bbin

嗯,我弄完,再回头看,真的确实有点乱,将就看,有什么不明白的留言或者微信我


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【采集运维工具】完善脚本,智能延时》的版权归原作者「用电信息采集运维」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注用电信息采集运维微信公众号

用电信息采集运维微信公众号:ydxxcjyw

用电信息采集运维

手机扫描上方二维码即可关注用电信息采集运维微信公众号

用电信息采集运维最新文章

精品公众号随机推荐

举报