Autohotkey 覆蓋默認快捷鍵

通過對註冊表進行下面的修改, 您可以禁用除 Win+L 和 Win+U 外的其他所有內置的 Windows 熱鍵 (這種方法應該適用於所有操作系統, 但可能需要重啓才生效,註冊表命令regedit):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下添加:

NoWinKeys REG_DWORD 0x00000001 (1)

禁用Win+L: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System下添加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"), 然後運行這個文件.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章