当前位置: 首页 > >

Autohotkey 覆盖默认快捷键

发布时间:

通过对注册表进行下面的修改, 您可以禁用除 Win+L 和 Win+U 外的其他所有内置的 Windows 热键 (这种方法应该适用于所有操作系统, 但可能需要*舨派В⒉岜砻顁egedit):


HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下添加:


NoWinKeys?REG_DWORD?0x00000001?(1)


禁用Win+L: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下添加DWORD?32位的值,并重命名为DisableLockWorkstation,并将其值修改为1


但如果您想进一步设置而非仅仅禁用它们, 那么请继续阅读.


其他程序中定义的热键可以被指定到脚本中的动作来轻松地进行覆盖或禁用. 此特性常用来改变 Windows 内置的热键. 例如, 如果您想用 Win+E (启动 Windows Explorer 的快捷键) 执行其他的动作, 请使用这个:


?


#e::


MsgBox This hotkey is now owned by the script.


return


在下面的例子中, 把用来打开运行对话框的 Win+R 热键完全禁用了:


?


#r::return


同样地, 要 禁用两个 Windows 键, 请使用这个:


?


Lwin::return


Rwin::return


要禁用或改变一个应用程序的非全局热键 (即仅对那个应用程序的窗口有效的快捷键), 请参考下面的例子, 其中仅禁用了记事本的 Control+P (打印), 而让它对其他所有窗口保持有效:


$^p::


IfWinActive?ahk_class?Notepad


? ? return? ;?即不进行操作,?这样让?Control-P?在记事本中失效.


Send?^p


return


在上面的例子中, 必须使用 $ 前缀, 这样热键才可以 "发送自身" 而不触发它自己 (否则会出现提示无限循环的警告对话框). 另请参阅: 上下文相关的热键.


您可以尝试执行上面的每个例子: 把它们复制到新文本文件 (例如 "Override.ahk"), 然后运行这个文件.



友情链接: