[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