堆积木——GBQ4.0设置“统一设置安装费用”中的“高层建筑增加费”
生活随笔
收集整理的這篇文章主要介紹了
堆积木——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设置“统一设置安装费用”中的“高层建筑增加费”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言模仿文字游戏
- 下一篇: Python3爬虫-selenium爬取