我被困在构建一个ahk快捷方式脚本来增加/减少音量。想法是按住LAlt + LShift并点击F12以增加每个步骤一步。 按下LAlt和LShift的顺序并不重要。
到目前为止,我想出了这个:
!+::
While (GetKeyState("LShift","P")) and (GetKeyState("LAlt","P"))
{
F12::Send {Volume_Up}
}
Return
但不知何故,它增加了持有LAlt和录制F12的音量。 LShift得到了ig ..
这有什么不对......
答案 0 :(得分:2)
此
F12::Send {Volume_Up}
不是命令,它是热键分配。您不能在可执行文件中使用它。它实际上是:
的缩写形式F12::
send {volume_up}
return
你不想在应该执行的行之间某处return
,你愿意吗。
正如可以在文档中看到的那样,您只能轻松地将两个热键合并到一起,例如a & b::msgbox, you pressed a and b
。例如。对于 a , b AND c ,您需要一些解决方法,例如下面的旧答案。
但您可以根据需要为热键添加任意数量的修饰符。修饰符为!
alt ,+
shift ,#
win 等等(请注明)看@ http://ahkscript.org/docs/Hotkeys.htm#Symbols)。
所以你可以简单地使用
<!+F12::send {volume_up}
-
因此,您的目标只是在按下三个热键时触发 volume_up
。你可以这样做:
#if getKeyState("LShift", "P")
*<!F12::send {volume_up}
#if
或
*<!F12::
if(getKeyState("LShift","P"))
send {volume_up}
return
有关*
和<
以及其他可能修饰符的含义,请参阅http://ahkscript.org/docs/Hotkeys.htm#Symbols
你的方法并不太糟糕。如果您使用Hotkey命令而不是实际的热键分配,它将起作用。这仍然是不必要的工作