
我搜尋了過去的問題,但我還沒有找到一個解決方案來切換LAlt(LCtrl或CapsLock與LCtrl)同時完全保留AltGr,對應於Ctrl+ Alt(或者可能是LCtrl+ RAlt?)。
這是最接近的問題,但我無法使用註冊表,我的權限有限。 使用 AutoHotKey 切換 Ctrl 和 Alt,而不弄亂 Alt-Tab 切換器?
還相關: https://code.google.com/p/uawks/issues/detail?id=2
我正在使用以下任一簡單腳本:
LAlt::LCtrl
LCtrl::LAlt
第二個:
LCtrl::CapsLock
CapsLock::LCtrl
每當我按下AltGr任何其他按鍵時,就會有東西卡住,我必須隨機按下Alt,Ctrl直到我可以再次書寫。如果我使用第二個腳本,CapsLock 就會被啟動!
我的鍵盤是瑞士鍵盤,我有很多帶有第三個符號的按鍵,因此我需要經常AltGr重新映射每個按鍵並不是一個乾淨的解決方案。
更新
我剛剛發現AltGr通過在之前發布的兩個腳本的末尾添加以下行可以完全解決問題,但我不明白為什麼會發生這種情況。
<^>!::RAlt
為什麼重新映射AltGras RAltALONE 仍然產生常規的效果AltGr?
答案1
1) 雖然本質上很簡單,但對於我們這些沒有 AltGr 鍵盤來測試的人來說,這篇文章的邏輯很難理解。無論如何,我代表自己說話......為了便於理解,它可能有助於澄清您正在談論哪兩行腳本,然後是您按下的鍵(以及按什麼順序)的列表,然後是按什麼鍵的列表你得到的結果。然後列出下一個腳本、鍵和結果。或者也許其他人不需要這個,但即使我相信您已經列出了所有關鍵信息,但對我來說有點難以理解。
2)您是否查看過幫助文件中的熱鍵重新分配?我注意到有兩件事你可能想玩。首先是使用 * 作為修飾符。其次是使用“Up”在上擊中觸發以發送不同的上擊(即,為不同的修飾符發送上擊)。查看說明文件中 Hotkeys 所列出的 LWin 重新定義:
*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}
3) 有時事情會卡住,當發生這種情況時,即使按鍵已經打開,您有時也可以透過發送「向上」命令來解決它。從技術上講,它可能不需要,但有時它有效(有時無效)。
4) 它可能(或可能不)用於透過「檢視」功能表查看關鍵歷史記錄清單。通常,您可以透過查看處理鍵的順序(即它們列出的順序)以及它們是否由於列出的各種原因而被忽略,從而找到為什麼事情會卡住或為什麼會失敗。
5) 正如LWin 重新定義範例所示,您可能希望在故障排除期間使用“Send”或“SendInput”命令以獲得更大的靈活性(如果您最終不需要它,當然您可以不使用它並使程式碼更清晰,但是它不會傷害任何東西)。例如,使用「傳送」命令可以輕鬆地將另一個字元或按鍵新增至單一熱鍵重新指派上,然後查看按鍵歷史記錄清單中的觸發順序以了解其內容。想被按下以及按什麼順序按下。
如果我要測試這些鍵盤之一,我可能會採用您列出的兩行示例之一,並將其轉換為四行鍵重新分配,以 LWin 重新分配示例的方式,然後看看在關鍵歷史。我也可能會添加暫停語句,以便在行為中捕獲它,並能夠查看直到執行暫停的點的擊鍵歷史記錄,這將排除日誌顯示任何被釋放的修飾鍵。
我不知道這是否可行,但這裡是您可以出於調試目的開始的事物類型的概述。
*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
Send {LAlt Down}
Pause ; once the script is paused you can go look at Key History
Return