我正在尝试创建一个我称之为“任务切换器”的宏,理想情况下使用我的“Microsoft Natural Ergonomic 4000”键盘上对我来说没用的“媒体播放/暂停”按钮。我不需要此按钮的默认功能,因此我想重新绑定它。我最需要的宏是,正如我提到的,Ctrl++ Alt(Tab或Alt+ Tab)。
我使用最新的 Microsoft 鼠标和键盘中心程序执行此重新绑定,但没有成功。您可以在下面看到: 我相信我做的一切都是正确的;不幸的是,这个程序中的键可能存在错误Tab,我找不到解决方法(我也尝试了键盘上的其他键;Alt+Tab不起作用)。我还尝试将延迟增加到 200 毫秒,但仍然不起作用。我也尝试了“切换”和“按住”模式,但没有任何效果。
然后我尝试使用可靠的 AutoHotkey 拦截“媒体播放/暂停”按钮按下,获取其扫描码,然后将其分配给Alt+ Ctrl+Tab宏,这在 AHK ( ) 中工作得很好Send, ^!{TAB}
。但是,当我记录击键时,Autohotkey 无法识别“媒体播放/暂停”按钮(在上图中以蓝色突出显示)的扫描码,或者此键盘上的任何其他特殊按钮。我相信这是因为像这样的特殊按钮被映射到自定义 HID 输入设备,试图弄清楚这一点会导致一个太深的兔子洞,我现在无法解决。
有人知道我如何将Ctrl++宏/热键分配给此键盘的特殊按钮Alt吗Tab?如果你知道,请分享。谢谢。
编辑
解决用户3419297 这里。
答案1
使用完全相同的键盘模型,我可以轻松地重新映射⏵/⏸AutoHotKey 中的(播放/暂停)按钮,如下所示:
Media_Play_Pause::Send ^!{Tab}
+Media_Play_Pause::Media_Stop
^Media_Play_Pause::Launch_Media
...并且您的Ctrl++想法非常有效。我演示和修饰符用法的其余示例也同样Alt有效。TabShiftCtrl
但我承认我没有安装 Microsoft 鼠标和键盘中心,以避免任何干扰(并节省一些系统资源)。
为了这个答案的完整性,我需要注意,我在 AHK 脚本的顶部对发送模式使用了以下修改:
SendMode Input
并确保您始终以高架方式运行 AHK(即作为管理员)。
我验证了以下脚本可以⏵/⏸很好地捕获 Windows 10 中 AHK(版本 1.1.25.01)运行提升的(播放/暂停)按钮:
SendMode Input
+Media_Play_Pause::msgbox Shift+PlayPause
^Media_Play_Pause::msgbox Ctrl+PlayPause
Media_Play_Pause::msgbox PlayPause
经过进一步研究,问题不在于捕获⏵/⏸(播放/暂停)按钮,而在于执行Alt+Tab 这需要针对 Windows 8.1 的特殊技术. 捕获本身进行得很顺利。