问题描述
我正在尝试使用 Autohotkey 更改媒体。我想使用左移 (
<+<#NumPad8::
Send {Media_Next}
return
解决方法
从the Numpad Section of the docs,他们提到:
如果 NumLock 关闭但 Shift 被按下,系统会暂时释放 Shift 并表现为 NumLock 开启。
这似乎也适用,反之亦然,因为在 Numlock
处于打开状态时按住 Shift 而后单击 NumPad8
似乎发送 NumpadUp
而不是 {{ 1}}+Shift
。
我们可以通过创建一个 Hotkey 来解决这个问题,当 Win+NumpadUp[+ 任何其他修饰键(例如 Shift)] 被按下时激活,然后检查自己是否 Numpad8
和 Shift
积极的。如果是,那么我们Numlock
媒体密钥。
当前代码:
Send
但是,如果我们在反复按下该键的同时按住 *#NumPadUp::
if(GetKeyState("NumLock","T") and GetKeyState("Shift","P"))
Send {Media_Next}
return
+Win
,它似乎会从 Shift
恢复为 NumpadUp
。为了解决这个问题,我们可以在使用 Numpad8
时激活的新热键中重用之前热键的主体。
最终代码:
*#NumPad8
编辑:感谢 @samthecodingman 提出我错过的优化 - 代码已被编辑以包含此