AutoHotKey で次の動作を実現しようとしています: キーが押されると、AHK はキーが押されるまでキーA
を押し続けます。次のスクリプトは期待どおりに動作しません:S
D
a::
Send {s Down}
return
d::
if (GetKeyState("s", "P"))
{
Send {s Up}
}
return
以下も同様です。
a::
release_s = 0
Loop
{
SendInput, s
if release_s
break
}
return
d::
release_s = 1
return
答え1
これを試してみてください:
a::Send, {s down}
d::
if(GetKeyState("s")) {
Send, {s up}
}
return
コードの問題:
GetKeyState("s", "P")
のみを説明します物理的なキー。S一方は、バーチャルキーはAHK製。
答え2
{s Down} を送信してもキーの繰り返しは発生しません。ループを使用する必要があります。これを試してみてください:
a::
stop = 0
Loop
{
SendInput, s
Sleep 50 ;adjust for speed of repetition
if stop
break
}
return
d::
stop = 1
return