不再誤打,讓Windows快速切換到指定的輸入法

你是否常常會打字打到一半卻發現全變成英文亂碼?或是想打英文時打了半天游標還停在原地?


別懷疑!每個人和你的困擾都是一樣的!本篇就是要教你如何製作兩個快捷鍵,不管現在處在哪種輸入模式,一個鍵切換到中文,一個鍵切換到英文,這就對了!從此之後打字前只要養成習慣,先按一下中文鍵再開始打,就一定會是中文,按一下英文鍵再開始打,就一定會是英文!雖然缺點是每次都要多按一個鍵,但本篇還會教你如何把平常一定要組合才有用的Alt/Ctrl/Win鍵變成單獨按一下也可有用的快速鍵!只要將中文鍵放在左Alt、英文鍵放在右Alt,打字前閒閒沒事的拇指按一下就可以保證不會打錯了!

關鍵字:輸入語言、輸入法、快捷鍵、注音亂碼、AutoHotKey

新增英文鍵盤配置

假如你目前的鍵盤配置只有微軟注音,請依下面步驟新增英文鍵盤。

首先到開始→設定→時間與語言

地區與語言→新增語言

英文→英文(美國)

安裝其他注音輸入法

這步非必須,只使用預設的微軟注音也可以,但有時會較麻煩,因若某些程式的輸入框預設是英文,則微軟注音便會切換回英文,例如在瀏覽器的網址列便是如此。

個人推薦任選一套安裝

設定AutoHotKey腳本

這步是將切換輸入法定義(map)到想要的快捷鍵,並不一定要用AutoHotKey來達成,Windows內建也可以重新定義到某些快捷鍵,但只限於用Ctrl + Shift + 0~9或Alt + Shift + 0~9,作為常用的快速鍵十分不便,因此還是建議使用AutoHotKey。內建的方法補充在文末。

首先下載AutoHotKey (官網),並安裝。

接著開新文字檔,將下面的代碼貼上後存成任意檔名.ahk。

RAlt::PostMessage, 0x50, 0, 0x4090409,, A
LAlt::PostMessage, 0x50, 0, 0x4040404,, A

這兩行的功能是將::前的按鍵,右Alt或左Alt定義成後面的功能,也就是將現在的鍵盤配置切換為中文(0x4040404)或英文(0x4090409)。同理,你也可以設定成自己想要的任何按鍵(例如,Capslock、LWin、LCtrl、AppsKey)。用這種方式重新指定修飾鍵(Modifier,也就是Alt、Ctrl這類要和其他按鍵組合才有功能的鍵)並不會破壞其他快速鍵,因此相當於是鍵盤多了一個快捷鍵。

到這邊就完成了,習慣後便不會再打錯了。Mac也有類似的方法,利用Karabiner中的ModifierFlag可以達成同樣效果。

偵測當前鍵盤配置

以下提供偵測目前的鍵盤配置的語法,如果你使用中文或英文以外的輸入法,可以同理製作快速鍵。

checkCurrentKeyboardLayout() {
SetFormat, Integer, H ; format 67699721 into 0x4090409
WinGet, WinID,, A
ThreadID := DllCall(“GetWindowThreadProcessId”, “Int”, WinID, “Int”, “0”)
InputLocaleID := DllCall(“GetKeyboardLayout”, “Int”, ThreadID)
msgbox %InputLocaleID%
return
}

Windows內建的設定快捷鍵方法

延續新增語言後的設定畫面,選取其他日期、時間及區域設定

語言

進階設定

變更語言列快速鍵

選取切換到 中文→變更按鍵順序,便可以設定快捷鍵

接著到右下角的工具列→在ㄅ左邊的英或中上點右鍵→內容

預設輸入模式選取中文模式。這個設定的目的是讓微軟注音預設都在中文輸入模式(也就是按shift前的狀態),但在遇到輸入框強制指定的時候仍會被強制切換。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。