无法使用小键盘作为我的键盘触发器

问题描述

我正在尝试使用 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)] 被按下时激活,然后检查自己是否 Numpad8Shift积极的。如果是,那么我们Numlock媒体密钥。

当前代码:

Send

但是,如果我们在反复按下该键的同时按住 *#NumPadUp:: if(GetKeyState("NumLock","T") and GetKeyState("Shift","P")) Send {Media_Next} return +Win,它似乎会从 Shift 恢复为 NumpadUp。为了解决这个问题,我们可以在使用 Numpad8 时激活的新热键中重用之前热键的主体。


最终代码:

*#NumPad8

编辑:感谢 @samthecodingman 提出我错过的优化 - 代码已被编辑以包含此