</head> <body> <h1>覆盖或禁用外部的热键</h1> <p>通过对注册表进行下面的修改, 您可以禁用除 <kbd>Win</kbd>+<kbd>L</kbd> 和 <kbd>Win</kbd>+<kbd>U</kbd> 外的其他所有内置的 Windows 热键(这种方法应该适用于所有操作系统, 但可能需要重启才生效):</p> <pre class="no-highlight">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoWinKeys REG_DWORD 0x00000001 (1)</pre> <p>但如果您想进一步设置而非仅仅禁用它们, 那么请继续阅读.</p> <p>其他应用程序拥有的热键可以被覆盖或禁用, 只需将它们指定给脚本中的操作即可. 此特性常用来改变 Windows 内置的热键. 例如, 如果您想用 <kbd>Win</kbd>+<kbd>E</kbd>(启动资源管理器的快捷键) 执行其他的动作, 请使用这个:</p> <pre>#e::MsgBox "This hotkey is now owned by the script."</pre> <p>在下面的例子中, 完全禁用打开运行对话框的 <kbd>Win</kbd>+<kbd>R</kbd> 热键:</p> <pre>#r::return</pre> <p>类似的, 要禁用左右 <kbd>Win</kbd>, 请使用:</p> <pre>LWin::return RWin::return</pre> <p>要禁用或改变一个应用程序的非全局热键(即仅对那个应用程序的窗口有效的快捷键), 请参考下面的例子, 其中禁用了仅适用于记事本的 <kbd>Ctrl</kbd>+<kbd>P</kbd>(打印), 而让它对其他所有窗口保持有效:</p> <pre>$^p:: { if WinActive("ahk_class Notepad") return <em>; 即不进行操作, 这样让 Ctrl-P 在记事本中失效.</em> Send "^p" }</pre> <p>在上面的例子中, 必须使用 $ 前缀, 这样热键才可以 "发送自身" 而不触发它自己(否则会出现提示无限循环的警告对话框). 另请参阅: <a href="../Hotkeys.htm#Context">上下文相关的热键</a>.</p> <p>您可以尝试执行上面的每个例子: 把它们复制到新文本文件(例如 "Override.ahk"), 然后运行这个文件. 或者, 如果您的浏览器支持它, 您可以通过单击将鼠标悬停在代码块上时出现在代码块右上角的 <span style="font-family: icons;">↓</span> 按钮来下载它们中的任何一个作为脚本文件.</p> </body> </html>