AutoHotkey的。按住两个按钮并点按另一个按钮以增加音量

时间:2015-10-24 05:36:47

标签: autohotkey

我被困在构建一个ahk快捷方式脚本来增加/减少音量。想法是按住LAlt + LShift并点击F12以增加每个步骤一步。 按下LAlt和LShift的顺序并不重要。

到目前为止,我想出了这个:

!+::
    While (GetKeyState("LShift","P")) and (GetKeyState("LAlt","P"))
    {
        F12::Send {Volume_Up}
    }
Return

但不知何故,它增加了持有LAlt和录制F12的音量。 LShift得到了ig ..

这有什么不对......

1 个答案:

答案 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命令而不是实际的热键分配,它将起作用。这仍然是不必要的工作