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

作者: Zazzi (!!!)   2016-02-11 03:37:09
我是程式語言甚至是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

Links booklink

Contact Us: admin [ a t ] ucptt.com