对注册表做如下更改,你可以禁用内置的 Windows 热键除了 Win+L 和 Win+U (这适用于所有的微软操作系统,不过可能需要重启生效):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoWinKeys REG_DWORD 0x00000001 (1)
但是如果你想进一步设置而非仅仅将它们全部禁用,那么请往下看。注意下面的大部分示例在 Windows Me/98/95 中不支持。
其他程序定义的热键可以在脚本中将它们指定为一个动作来简单地覆写或禁用。此特性常用来改变 Windows 内置的热键。例如,如果你希望 Win+E (启动资源管理器的热键) 执行其他的动作,可以这样:
#e::
MsgBox 现在脚本支配此热键。
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",然后运行文件来试用。