Re: [-AI-] 想請問一下這程式裡的程式碼用途

看板EzHotKey作者 (小寶包是天使與惡魔)時間7年前 (2017/12/31 09:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
Global $g_bPaused = False ;設定暫停真假值 Dim $interval = 480 Dim $isLoop=1 ;!單獨滑鼠右鍵觸發、單獨滑鼠下滾觸發或單獨LSHIFT觸發 ;用Capslock會依目前是否亮燈決定是否成功跑! HotKeySet("{F8}", "StartClick") ;不能用滑鼠點擊觸發,建議用鍵盤組合方式觸發 HotKeySet("{F10}", "Terminate") ;!除了上面的exit方式外希望有個暫停程式運作(含偵測)的,要用時按一下又繼續的, ;有查到用pause/break當開關,但希望是可以用其他鍵而不只限定於pause ;(因為可能會同時開多個-AI-來用)! HotKeySet("{F9}", "TogglePause") ;腳本暫停執行,可代換其他快速鍵, ;但是檔名要更換其他名稱,避免混淆, ;再按一次可繼續執行 While 1 Sleep(60000) ;讓程式可以持續運作,直到Terminate 中止, ;該指令只是讓程式可以暫停執行,目前只有這 ;一行,所以大小無關,除非有其他指令要執行時就有影響 WEnd Func Terminate() ;中止程式執行 Exit EndFunc Func TogglePause() ;設定暫停指令 MsgBox(0,"真假值",$g_bPaused) ;此指令讓你知道初值,正式時可以拿掉 $g_bPaused = Not $g_bPaused ;反閘運算,初值為False 輸出為True, ;反之為False MsgBox(0,"真假值",$g_bPaused) ;輸出運算後值 While $g_bPaused Sleep(100) ToolTip('腳本暫停執行-1', 0, 0) ;腳本暫停,並顯示左上資訊, ;可代換其他編號,避免混淆 WEnd ToolTip("") EndFunc ;==>TogglePause Func StartClick() $isLoop = 1 - $isLoop ;以同一按鍵來做切換狀態的開關 While (1-$isLoop) ;檢查是否執行迴圈 Send("{LSHIFT}") Sleep (1500) $time=0 While $time<=10 If($isLoop==1) Then ;檢查是否跳過迴圈 ExitLoop(2) EndIf $time+=1 Send("{Space down}") Sleep ($interval) Send("{Space up}") Sleep ($interval*9/8) WEnd WEnd EndFunc 有關連點部分可參考send 指令搭配 SendKeyDelay副指令控制連點間隔時間 另要偵測某按鍵是否按下還是要靠HotKeySet指令去做,但是可用 if 或是 while 去做後續處理。 ※ 引述《MoJi (戰神)》之銘言: : 大概想了一下雛形 : 註解!部分應該是我目前有疑惑的 : Dim $interval = 480 : Dim $isLoop=1 : ;!單獨滑鼠右鍵觸發、單獨滑鼠下滾觸發或單獨LSHIFT觸發 : ;用Capslock會依目前是否亮燈決定是否成功跑! : HotKeySet("{RBUTTON}", "StartClick") : HotKeySet("{F10}", "Terminate") : ;!除了上面的exit方式外希望有個暫停程式運作(含偵測)的,要用時按一下又繼續的, : ;有查到用pause/break當開關,但希望是可以用其他鍵而不只限定於pause : ;(因為可能會同時開多個-AI-來用)! : While 1 : Sleep(60000) ;!這裡面的數值填大填小有啥差別?! : WEnd : Func Terminate() : Exit 0 : EndFunc : Func StartClick() : $isLoop = 1-$isLoop ;以同一按鍵來做切換狀態的開關 : While (1-$isLoop) ;檢查是否執行迴圈 : Send("{LSHIFT}") : Sleep (1500) : $time=0 : While $time<=10 : If($isLoop==1) Then ;檢查是否跳過迴圈 : ExitLoop(2) : EndIf : $time+=1 : Send("{Space down}") : Sleep ($interval) : Send("{Space up}") : Sleep ($interval*9/8) : WEnd : WEnd : EndFunc : ps. : 還有就是a按下時連點a,放開時結束.... : AHK有getkeystate可以偵測按件是否按下a來判斷 : ai有嗎?想把連點也加進去 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.48.213 ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1514684100.A.265.html
文章代碼(AID): #1QI3x49b (EzHotKey)
文章代碼(AID): #1QI3x49b (EzHotKey)