Scrivener优先捕获按键导致AHK脚本热键失效如何解决
Scrivener 拦截 AHK 热键解决方案
Scrivener 默认启用了优先级较高的低级键盘钩子,会先于普通权限的 AHK 脚本捕获按键输入,导致自定义热键失效或被覆盖,可通过以下方法解决:
- 提升 AHK 脚本运行权限
右键点击对应 AHK 脚本文件,选择「以管理员身份运行」即可临时生效;如需永久生效,右键脚本→「属性」→「兼容性」选项卡,勾选「以管理员身份运行此程序」后确认即可。如果你的 Scrivener 本身就是以管理员权限启动的,该操作是必需步骤。 - 禁用 Scrivener 内部冲突快捷键
针对和 Scrivener 自带功能冲突的热键(如你设置的Ctrl+D),可直接在 Scrivener 内修改或禁用对应快捷键:打开 Scrivener→顶部菜单栏「工具」→「选项」→「快捷键」面板,找到「新建卡片」对应的Ctrl+D绑定,修改为其他按键或直接删除绑定即可,AHK 的自定义热键后续就可以正常触发。 - 修改 AHK 脚本配置提升钩子优先级
在你的原有脚本开头新增 3 行配置,强制 AHK 使用更高优先级的键盘钩子,修改后的完整开头代码如下:
针对#InstallKeybdHook #SingleInstance Force #UseHook On SendLevel 10 SetCapsLockState, AlwaysOff Run C:\Users\xxx\Documents\windowpad.ahk Coordmode, Mouse, Screen SetTitleMatchMode, 2Win+方向键这类被拦截的系统级热键,定义时额外强制启用钩子即可,示例代码如下:#UseHook On ; Win+左箭头 绑定窗口左半屏 #Left::WinMove, A, , 0, 0, A_ScreenWidth/2, A_ScreenHeight ; Win+右箭头 绑定窗口右半屏 #Right::WinMove, A, , A_ScreenWidth/2, 0, A_ScreenWidth/2, A_ScreenHeight #UseHook Off
内容的提问来源于stack exchange,提问作者J. G.
相关产品推荐
相关产品推荐

