- 實現用Chrome讀取條顏色判斷時間
- 用Chrome搜尋文字功能來定位座標
- UI介面,文字顯示進度與花費時間
- 計算預期完成時間
- 圖像化進度條顯示進度
- 自動輸出可節省的動作和時間純文字日誌
雖然有些功能是該工具介面限定,但有些概念還是共通,在此紀錄一下。
F12:: V_PluginName = 權限管理外掛 V_Version = v6.3 V_Game = AAA, BBB ;遊戲 V_Name = Aaron, Claire, Jacky ; 名字 V_Function = 功能1, 功能2 ; 功能名稱 V_StartTime = %A_Now% ;紀錄開始時間 CoordMode ,Pixel, Screen ;設置座標模式相對於桌面 (整個屏幕) CoordMode ,Mouse, Screen ;設置滑鼠座標模式相對於桌面 (整個屏幕) BlockInput ,Mouse WinWait, 9sPlay - Google Chrome, IfWinNotActive, 9sPlay - Google Chrome, , WinActivate, 9sPlay - Google Chrome, WinWaitActive, 9sPlay - Google Chrome, Loop, Parse, V_Game, `, ;用 "," 解析 V_Game 字串並計算切割後的字串數量 { V_GameNum =%A_Index% } Loop, Parse, V_Name, `, ;用 "," 解析 V_Name 字串並計算切割後的字串數量 { V_NameNum =%A_Index% } Loop, Parse, V_Function, `, ;用 "," 解析 V_Function 字串並計算切割後的字串數量 { V_FunctionNum =%A_Index% } V_ActionNum := V_GameNum*(V_NameNum+V_FunctionNum) ;計算動作數量 Gui, Color, White ;GUI顏色設定為白色 Gui, Add, Text, W600, 新增項目:%V_Game%`r`n`r`n人員:%V_Name%`r`n`r`n功能:%V_Function%`r`n ;新增本次工作內容文字 Gui, Add, Progress, vV_MyProgress w600 ;新增進度條至變量 V_MyProgress (在字母 V 後指定一個變量名, 此變量將為全局變量) Gui, Add, Text, vV_MyText W600 Right ;新增文字至變量 V_MyText (在字母 V 後指定一個變量名, 此變量將為全局變量) Gui +Resize +MaxSize640x480 +AlwaysOnTop -SysMenu ;GUI設定尺寸、保持最上層、去掉系統選單 Gui, Show, X-900 Y300 NoActivate, %V_PluginName% %V_Version% ;NoActivate 讓當前活動窗口繼續保持活動狀態 Loop, Parse, V_Game, `, ;用 "," 解析 V_Game 字串並執行本次工作內容 { V_CurrentTime = %A_Now% ;紀錄當前時間 EnvSub, V_CurrentTime, %V_StartTime%, S ;以秒計算總共花了多少時間,並更新至 V_CurrentTime V_EstimateTime := (V_CurrentTime//(A_Index)-1)*V_GameNum ;預測時間公式:(當前時間 V_CurrentTime//第 A_Index 個項目-1)*V_GameNum. (//)表示為向下捨除 V_ProgressPercentage := (A_Index/V_GameNum)*100 ;進度百分比公式:(A_Index 當前進度數/V_GameNum 總遊戲數)*100 GuiControl,, V_MyProgress, %V_ProgressPercentage% ;更新進度條 if A_Index <= 1 { GuiControl,, V_MyText, 目前執行到第%A_Index%/%V_GameNum%個項目"%A_LoopField%",已使用時間計算中,預期時間計算中 ;更新進度文字至變量 V_MyText Gosub, L_AutoAction ;開權限主要動作 } else { GuiControl,, V_MyText, 目前執行到第%A_Index%/%V_GameNum%個項目"%A_LoopField%",已使用%V_CurrentTime%秒,預期使用%V_EstimateTime%秒 ;更新進度文字 Gosub, L_AutoAction ;開權限主要動作 } } V_CurrentTime = %A_Now% ;紀錄結束時間 EnvSub, V_CurrentTime, %V_StartTime%, S ;計算總共花了多少時間 MsgBox, 262144, %V_PluginName% %V_Version%, 新增項目:%V_Game%`r`n`r`n人員:%V_Name%`r`n`r`n功能:%V_Function%`r`n`r`n太棒了!你又節省了%V_CurrentTime%秒! Gui,Destroy FileAppend, %A_YYYY%/%A_MM%/%A_DD% %A_Hour%:%A_Min%:%A_Sec%`, %V_Version% save action`,%V_ActionNum% `, and time(second)`, %V_CurrentTime%`n, %A_ScriptDir%\9SplayBackgroundPluginLog.txt ;輸出日誌 Run, %A_ScriptDir%\9SplayBackgroundPluginLog.txt ;開啟日誌 Return L_SaveFind1: ;搜尋字串後尋找搜尋色塊 OldClip = %Clipboard% ;把目前的剪貼簿內容先存起來 Clipboard = %A_LoopField% ;將字串替換至剪貼簿 Sleep, 300 send, ^f ;搜尋字串 Sleep, 300 send, ^v ;貼上複製內容 Sleep, 700 PixelSearch, V_ColorCoordinateX, V_ColorCoordinateY, -746, -897, -36, 300, 0x3296FF, 3, Fast ;尋找搜尋色塊 Return L_SaveFind2: ;點擊座標修正後的勾選框 Sleep, 300 mousemove, %V_NewColorCoordinateX%, %V_NewColorCoordinateY% Mouseclick, Left, %V_NewColorCoordinateX%, %V_NewColorCoordinateY% ;點擊座標修正後的勾選框 Sleep, 300 Clipboard = %OldClip% ;恢復先前剪貼簿內容 Return L_AutoAction: ;開權限主要動作 Mouseclick, Left, -924, -871, , 1 ;點項目選單 Sleep, 300 Send, %A_LoopField%{ENTER} Sleep, 700 Loop ;判斷讀取條是否還在 { PixelSearch, V_ColorCoordinateX, V_ColorCoordinateY, -999, 710, -989, 715, 0xFFFFFF, 3, Fast ;搜尋白色底色 if ErrorLevel ;如果讀取條還在 { Sleep, 300 } else { Loop, Parse, V_Name, `, ;用 "," 解析 V_Name 字串後搜尋,並點擊座標修正後的勾選框 { Gosub L_SaveFind1 V_NewColorCoordinateX := V_ColorCoordinateX-62 ;名字座標修正 V_NewColorCoordinateY := V_ColorCoordinateY+5 ;名字座標修正 Gosub L_SaveFind2 } Loop, Parse, V_Function, `, ;用 "," 解析 V_Function 字字串後搜尋,並點擊座標修正後的勾選框 { Gosub L_SaveFind1 V_NewColorCoordinateX := V_ColorCoordinateX-42 ;功能座標修正 V_NewColorCoordinateY := V_ColorCoordinateY+5 ;功能座標修正 Gosub L_SaveFind2 } PixelSearch, V_ColorCoordinateX, V_ColorCoordinateY, -746, -897, -36, 300, 0xDEC05B, 3, Fast ;搜尋確定更改 V_NewColorCoordinateX := V_ColorCoordinateX+25 ;確定更改座標修正 V_NewColorCoordinateY := V_ColorCoordinateY+10 ;確定更改座標修正 Sleep, 300 Mouseclick, Left, %V_NewColorCoordinateX%,%V_NewColorCoordinateY% ;點確定更改 Break } } Loop ;判斷修正完成蓋台還沒出現 { PixelSearch, V_ColorCoordinateX, V_ColorCoordinateY, -999, 710, -989, 715, 0x7F7F7F, 3, Fast ;搜尋灰色蓋台色 if ErrorLevel ;如果修正完成蓋台還沒出現 { Sleep, 300 } else { Mouseclick, Left, -924, -855, , 3 ;把蓋台按掉 Sleep, 1000 Break } } Return
沒有留言:
張貼留言