堆积木——GBQ4.0设置“统一设置安装费用”中的“高层建筑增加费”
为什么我要写这么一个脚本?因为我有几十个签证和变更需要分别设置“安装费用”,我发现,一个个的点速度太慢了,于是脑袋一热,想着我为什么不写个脚本模拟按键来解决这重复的操作呢。
于是为了应付当前的工作,用VBScript写了一个简易的脚本,代码如下:
1 Dim WshShell 2 Set WshShell = CreateObject("WScript.Shell") 3 4 Do 5 WScript.Sleep 200 6 Loop Until WshShell.AppActivate("统一设置安装费用") 7 8 For k = 1 to 8 9 If K <> 4 Then 10 '发送Enter键用于选择当前列表 11 WshShell.SendKeys "{Enter}" 12 WScript.Sleep 200 13 14 '发送Alt+Down键用于打开下拉列表 15 WshShell.SendKeys "%{Down}" 16 WScript.Sleep 200 17 18 '发送UP键10次,用于定位到第一个选项[无] 19 WshShell.SendKeys "{UP 10}" 20 WScript.Sleep 100 21 22 '当前楼层数为33,根据列表中的选项,排在第9位 23 WshShell.SendKeys "{Down 9}" 24 WScript.Sleep 100 25 26 '发送Enter键确认当前选项 27 WshShell.SendKeys "{Enter}" 28 End If 29 30 '继续下一个专业 31 WshShell.SendKeys "{Down}" 32 Next
View Code
于是乎,我从重复的选择中解脱,也帮我提升了效率,下面请看对比
自己鼠标点选
用脚本辅助选择
是不是有不一样的感觉。不过VBS脚本虽然方便,却也有一些缺点,比如,如果我打开“统一设置安装费用”的窗口,但是我并没有点击“高层建筑增加费”怎么办,或者某程序弹出消息,使得焦点不在当前窗口怎么办……
于是,我选择操起 AutoIt3 这家伙,我既可以方便的模拟鼠标点击,又可以方便的激活窗口。比起VBS,不说功能强大,至少方便些,不用我自己去造某些轮子(^_^)
用AutoIT重写脚本如下:
1 #cs ---------------------------------------------------------------------------- 2 3 AutoIt Version: 3.3.14.5 4 Author: lnissi 5 6 Script Function: 7 Template AutoIt script. 8 9 #ce ---------------------------------------------------------------------------- 10 11 ; Script Start - Add your code below here 12 13 #include <MsgBoxConstants.au3> 14 15 Local $str_Title = "统一设置安装费用" 16 Local $Floor_Count = 61 ;此处设置实际工程楼层数 17 18 ;列表中最大为60,即使点击更多,还是60 19 If $Floor_Count > 60 Then $Floor_Count = 60 20 21 If WinExists($str_Title) = 0 Then 22 MsgBox($MB_OK + $MB_ICONWARNING, "温馨提示", "未找到【" & $str_Title & "】窗口") 23 Exit 24 EndIf 25 26 ;激活窗口 27 WinActivate($str_Title) 28 WinSetState($str_Title, "", @SW_MAXIMIZE) 29 30 ;点击高层建筑增加费 31 ControlClick($str_Title, "", "[CLASS:TGSPDBGrid; INSTANCE:2]", "left", 1, 150, 50) 32 ;点击规则说明 33 ControlClick($str_Title, "", "[CLASS:TGSPDBGrid; INSTANCE:1]", "left", 1, 330, 52) 34 35 #cs 36 ;序号1,电气设备安装工程 从9层开始,递增3层,到60层;更多... 37 ;序号2,消防工程 从9层开始,递增3层,到60层,更多... 38 ;序号3,给排水、采暖、燃气工程 从9层开始,递增3层,到60层;更多... 39 ;序号4,通风空调工程 从36层开始,递增3层,到60层;从9层开始,递增3层,到33层;更多... 40 ;序号5,通信设备及线路工程 从9层开始,递增3层,到60层;更多... 41 ;序号6,建筑智能化系统设备安装工程 从9层开始,递增3层,到60层;更多... 42 ;序号7,安装节能工程-1安装节能电气工程 从9层开始,递增3层,到60层;更多... 43 ;序号8,安装节能工程-2安装节能给排水采暖工程 从9层开始,递增3层,到60层;更多... 44 #ce 45 46 For $n = 1 to 8 Step 1 47 48 ;初始化 $Count_Down 用于选择与实际楼层相匹配的列表 49 Local $Count_Down = 1 50 51 Switch $n 52 Case 1 to 3, 5 to 8 ;除通风空调以外 53 #Region "计算需要 {DOWN} 多少次" 54 ;根据 $Floor_Count 中设置的楼层数,进行循环匹配 55 ;匹配成功就跳出循环,匹配不成功则 $Count_Down 累加 56 For $Floor_Num = 9 to 60 Step 3 57 If $Floor_Count <= $Floor_Num Then 58 ExitLoop 59 Else 60 $Count_Down += 1 61 EndIf 62 Next 63 #EndRegion 64 Case 4 ;通风空调工程 65 #Region "计算需要 {DOWN} 多少次" 66 ;第一次循环,条件满足,则跳出循环。否则累加 $Count_Down 67 For $Floor_Num = 36 to 60 Step 3 68 If $Floor_Count <= $Floor_Num And $Floor_Count > 33 Then 69 ExitLoop 70 Else 71 $Count_Down += 1 72 EndIf 73 Next 74 ;第二次循环,如果条件满足,继续累加 $Count_Down 75 If $Floor_Num <= 33 Then 76 For $Floor_Num = 9 to 33 Step 3 77 If $Floor_Count <= $Floor_Num Then 78 ExitLoop 79 Else 80 $Count_Down += 1 81 EndIf 82 Next 83 EndIf 84 #EndRegion 85 EndSwitch 86 87 WinWaitActive($str_Title) ;为避免列表选择时的窗口无法获得焦点,需激活窗口 88 ControlSend($str_Title, "", "[CLASS:TGSPDBGrid; INSTANCE:1]", "{F2}") 89 Send("!{DOWN}") ;发送 ALT + DOWN ,使列表出现 90 Send("{UP 20}") ;发送 UP 键 20 次,使当前选择的列表置顶[无] 91 ;根据计算得出的列表位置,选择与楼层数对应的列表 92 For $i = 1 to $Count_Down Step 1 93 Send("{DOWN}") 94 Next 95 Send("{ENTER}") 96 Send("{DOWN}") ;选择下一个工程类别 97 Next
View Code
转载于:https://www.cnblogs.com/lnissi/p/11326685.html
堆积木——GBQ4.0设置“统一设置安装费用”中的“高层建筑增加费”相关推荐
- html打开新窗口设置窗口属性,HTML之:让网页中的a标签属性统一设置-如‘新窗口打开’...
在开发过程中,我们往往想在页面中,给设置一个统一的默认格式,例如我们想让链接:"在新窗口打开",我们就可以使用标签 在网页中添加这段代码: [注解] 标签为页面上的所有链接规定默认 ...
- Spring Cloud中Feign如何统一设置验证token
前面我们大致的聊了下如何保证各个微服务之前调用的认证问题 Spring Cloud中如何保证各个微服务之间调用的安全性 Spring Cloud中如何保证各个微服务之间调用的安全性(下篇) 原理是通过 ...
- .NET Core统一设置路由前缀
NetCore WebAPI 如何设置一个统一的路由前缀 创建一个类,遍历所有的controller,添加一个路由前缀 public class RouteConvention : IApplicat ...
- 微信小程序统一设置所有页面背景色
app.wxss中的样式属于全局样式,可以在app.wxss中添加如下代码来统一设置所有page的样式. page {background-color: rgba(250,250,250,0.90); ...
- Android8.0恢复出厂设置失败-BroadcastQueue: Background execution not allowed
Android7.0恢复出厂设置调用下面的代码可正常恢复出厂 Intent intent = new Intent(Intent. ACTION_MASTER_CLEAR);intent.addFla ...
- IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决
IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决 参考文章: (1)IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决 (2)https://www.cnblogs. ...
- 组策略(八)使用使用自定义RealVNC adm模板对域内工作站设置统一标准设置
VNC是网络远程管理的利器.VNC软件主要由两个部分组成:VNC Server及VNC Viewer.用户需先将VNC Server安装在被控端的计算机上后,才能在主控端执行VNC Viewer控制被 ...
- php怎么解决慢查询,【后端开辟】php-fpm7.0 慢查询设置及申明
环境申明 root@ubuntu:/home/tb# cat /etc/issue Ubuntu 16.04.2 LTS \n \l root@ubuntu:/home/tb# php -v PHP ...
- 《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一2.4 ESXi 5.0的简单设置...
2.4 ESXi 5.0的简单设置 要使用刚安装的ESXi系统,需要进行一些简单设置.表2-1所示即为设置ESXi 5.0所使用的按键及说明. 图2-20所示为ESXi启动后显示的控制台窗口,按F2键 ...
- CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析
CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析 以下为SMDK开发板startup.s部分启动代码. ;------------------------------- ...
最新文章
- 图灵奖得主高德纳与 LaTex 有啥关系?90%的人都不知道
- Ubuntu 进阶命令——长期不定时更新
- 2011考研数学复习注意三点 不提倡题海战术
- jsp 获取项目路径,java获取项目路径
- 深度学习100例 | 第32天-GRU模型:算法生成小说
- dynamodb容器使用_使用DynamoDBMapper扫描DynamoDB项目
- ARM系列处理器的分类
- 关于排版与交互的问题
- easyui打开新的选项卡_Jquery Easyui选项卡组件Tab使用详解(10)
- VMware vsphere 中创建虚拟机的方法
- Q111:PBRT-V3系统概述
- 002-用python设计的第一个游戏
- OpenGL超级宝典 使用缓冲为顶点着色器提供数据
- ICP-MS测试/电感耦合等离子体质谱仪(型号Perkin Elmer Nexion 300)
- sd内存卡 a1 a2 区别
- 微信小程序之打开其他小程序(两个小程序必须在同一公众号下关联)wx.navigateToMiniProgram
- word保存html格式批注没有了,Word批注保存后再打开没了
- html+js+canvas实现画板涂画功能和vue+canvas实现画板涂画功能
- 软件测试课程体系应该是什么样的,软件测试是什么?怎样做一名优秀的软件测试工程师?...
- Python爬取网站数据
热门文章
- 靶机渗透日记 responder
- python汉语词频统计_Python之四大名著汉字词频统计
- 计算机研究生期末汇报,研究生学期总结ppt.doc
- 云网融合赋能智慧转型,“天翼云管 ”开启贴身云管家时代
- 计算机课程总结word,大学生的计算机课程总结word.docx
- R语言编程 R语言作业
- python快速处理excel表格-python 处理 Excel 表格
- ROMS 编译upwelling.h
- 微软漏洞导致SQL注入威胁
- 一个漏洞潜伏54年?谁才是“潜伏界”最强王者