[AHK-] Getkeystate如何判定2個以上按鍵狀態

看板EzHotKey作者 (!!!)時間9年前 (2016/02/11 03:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我是程式語言甚至是AHK新手, 因為玩遊戲需求按住某鍵後可以連發才找到AHK這東西. 以下是我目前參考網路上按住某鍵可連發,放開則解除的設定 以F3開啟/停用這個script 按住鍵盤上的1則連發1 按住鍵盤上的2則連發2. 現在想要設置另一個功能 即按住alt且同時按住1則是連發alt+1 而按住alt且同時按住2則是連發alt+2 我自己試著修改(在以下分格線之後),可以部份使用,但有幾個狀況會不符合需求 例如: 我在按住alt且按住1的狀態下會連發1=>這ok 但當我持續按住alt,只放開1,改按住2時,會變成持續連發alt+1,而非我要的alt+2 我看了一下應該是我只用了alt的KeyState去判斷是否持續按住,因為alt持續一直按住 而沒有break原本的 loop 但如果是設置用1或2的KeyState去判斷是否break, 則另一個狀況當我先按住1,連發1時,再多按住alt 這樣則不會break連發1的狀態而進行到連發alt+1 請問要同時判斷兩個鍵位按住狀態的語法要怎麼寫(以alt和1為例)? ~F3::suspend $1:: Loop { If Not GetKeyState("1", "P") Break Send {1 Down} Sleep 10 Send {1 Up} Sleep 10 } Return $!1:: Loop { If Not GetKeyState("Alt", "P") Break Send !{1 Down} Sleep 10 Send !{1 Up} Sleep 10 } Return $2:: Loop { If Not GetKeyState("2", "P") Break Send {2 Down} Sleep 10 Send {2 Up} Sleep 10 } Return ---分格線------- $!2:: Loop { If Not GetKeyState("Alt", "P") Break Send !{2 Down} Sleep 10 Send !{2 Up} Sleep 10 } Return Return -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.60.188 ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1455133034.A.AC6.html
文章代碼(AID): #1Mkv5gh6 (EzHotKey)
文章代碼(AID): #1Mkv5gh6 (EzHotKey)