Skip to content
mangokingTW edited this page Aug 27, 2026 · 34 revisions

 輸入法工具箱 IME Mode Persistence

跨視窗維持中/英,並為程式綁定輸入語言

繁體中文 · English · 简体中文 · 日本語 · 한국어

Windows 小工具,控制輸入法在程式之間的行為:切換視窗時延續你最後選擇的輸入模式(中文/英數),並可把指定程式綁定到固定的輸入語言 —— 連讀不到執行檔的程式也行,例如有防作弊的全螢幕遊戲。

⚠ 開發階段,未經簽章 —— 請自行評估是否使用

本工具還在開發中,沒有程式碼簽章憑證。因此 Windows Defender 可能把它判定為病毒並直接刪除,已知的偵測名稱是 Behavior:Win32/Persistence.A!ml

那個偵測針對的是「開機時自動啟動」所建立的登入工作 —— 任何提供開機自動啟動的程式都必須做同樣的事,而未簽章的程式做這件事就會被行為監控盯上。已向微軟提交誤判回報,但沒有人能保證防毒軟體的判斷

原始碼、建置流程與發佈產物全部公開,由 GitHub Actions 從對應的 tag 建置,你可以自行檢視或重建。在此前提下,是否要繼續使用請自行決定。

遇到刪除時:改用免安裝的 zip,或不勾選「開機時自動啟動」。

程式碼簽章: 釋出檔未簽章。改以建置來源證明(build provenance)佐證 —— 每個釋出產物都由 GitHub Actions 從對應 tag 建置並附上證明,可用 gh attestation verify 驗證。

安裝

Releases 下載:

檔案 說明
...-setup.exe 推薦:標準安裝檔(安裝時可選擇為目前使用者或全機安裝)
...-x64.zip 免安裝,解壓即用

安裝時勾選 開機時自動啟動。裝好就會運作,不需要其他設定。

程式常駐在通知區域 —— 螢幕右下角、時鐘左邊。Windows 11 預設把新圖示收起來,要先點時鐘旁的 才看得到。圖示是藍色圓角方塊裡一個白色的「中」。

兩種常見的攔阻:

  • 藍色的「Windows 已保護您的電腦」→ 點「更多資訊 → 仍要執行」。檔案未簽章,這是信譽警告而非病毒偵測。
  • 防毒軟體把安裝檔刪掉 → 未簽章的安裝檔常被啟發式誤判。改用免安裝的 zip,功能完全相同。

為什麼會需要它

Windows 把輸入法狀態綁在每個執行緒上。切到另一個視窗時,中/英轉換模式會回到該輸入法的預設值 —— 對中文鍵盤來說就是中文。所以你剛按 Shift 切成英數,換個視窗又打出中文。

「設定 → 時間與語言 → 輸入 → 進階鍵盤設定」裡的**「允許我為每個應用程式視窗使用不同的輸入法」解決不了這件事**。那個設定管的是「哪一個輸入法在作用」,不管「該輸入法處於中文還是英數」—— 關掉它之後,切換視窗照樣切回中文。

沒有任何 Windows 設定能處理轉換模式 —— 這是這個工具的第一個目的:讓你選的中/英模式跟著你走。

第二個目的是把特定程式固定在某個輸入語言,包含連設定都碰不到的那類 —— 使用 raw input 的全螢幕遊戲直接讀鍵盤裝置,完全不參與輸入法的狀態管理,只能從外部處理。Helldivers 2 就是這種。

功能

托盤圖示按右鍵,這些功能都在選單裡:

托盤右鍵選單

跨程式維持輸入模式(預設開啟)

在 A 視窗用中文打字,切到 B 視窗時中文模式會被還原。你在 B 按 Shift 改成英數,切到 C 視窗還原的就是英數 —— 跟著你最近一次的手動切換走。不想要就在右鍵選單取消勾選。

程式綁定輸入語言

把特定程式固定在某個輸入語言:終端機永遠英文、Word 永遠中文。右鍵選單 → 程式綁定輸入語言…

程式綁定輸入語言對話框

  • 瀏覽 選出執行檔 → 只對那個位置的程式生效
  • 只填檔名(notepad.exe)→ 不管裝在哪都適用
  • 用剛才的程式 → 自動填入你開這個視窗之前用的程式
  • 用視窗類別 → 給讀不到執行檔的程式用,見下面的教學
  • 萬用字元(進階) → 路徑帶版本號、或視窗類別有生成後綴時,直接在欄位輸入 glob:*\game.exe(比對路徑)或 class-glob:name_*(比對視窗類別),支援 *(任意長度,含路徑分隔符)與 ?(單一字元)。精確規則一律優先於萬用字元 —— 這是預設順序,你也可以拖拉清單自訂,由上到下第一個符合的優先;每條規則可設只套用一次(進視窗設一次、之後不再強制),全部都不符合時還能啟用一條預設語言(預設關閉)。

游標輸入指示器(預設關閉)

托盤選單的在游標旁顯示輸入指示會在文字游標旁顯示一個小指示器,告訴你目前會打出什麼(該語言的中文/native 模式)、(輸入法切到英數)、或 EN 之類的語言代碼。設定會被記住。

指示器會跟著游標、避開自己的視窗。在瀏覽器網址列這類欄位,因為 Chromium 對外回報的游標位置不可靠,指示器會改顯示在該行上方、不遮住文字。

下列位置不會顯示輸入法指示器工作列與開始功能表的搜尋框Windows 終端機檔案總管。這些屬於系統層級介面,Windows 僅允許具備數位簽章的程式在其上顯示內容,而本工具目前尚未簽章。一般應用程式(瀏覽器、記事本與各式文字編輯器、Office、通訊軟體、遊戲等)皆可正常顯示。

逐步教學

怎麼知道它在做什麼

把滑鼠停在圖示上,不要點。停留就會顯示狀態;點下去會讓你想查的程式失去焦點,看到的就不是它了。

停在圖示上顯示的狀態

意思
當前程式 目前在最前面的程式
綁定語言 規則指定給它的語言
實際語言 它現在真正在用的語言
上次切換嘗試 有沒有成功

綁定語言與實際語言一致就代表正常。若最後多一行「一般權限 - 看不到提權的程式」,代表本工具沒有以管理員身分執行。

左鍵雙擊圖示可看到更完整的狀態,包括開機自動啟動目前用的是哪一種機制。

常見問題

為什麼切換到新版記事本等視窗時,輸入模式沒有維持? 新版記事本等現代 / WinUI 封裝程式的真正輸入欄位在焦點子視窗,受 Windows UIPI 機制保護:

  • 解法(推薦):在托盤選單點擊「啟用現代視窗 (WinUI) 支援…」(通過一次 UAC 啟動背景輔助服務),即可由 Helper 跨越 UIPI 保護維持輸入模式。Microsoft Store 商店版與一般桌面版皆支援
  • 桌面版亦可直接提權:點選托盤選單「以系統管理員身分重新啟動」。

「當前程式」顯示 class: 開頭的東西 正常,不是故障。有些程式(多半是有防作弊的遊戲)不允許其他程式讀取它的檔案位置,這時本工具改用視窗類別辨識它。那串 class:... 就是綁定規則要填的內容。

要不要以管理員身分執行? 要控制本身以管理員身分執行的程式(多數有防作弊的遊戲都是)就必須提權 —— Windows 不讓權限較低的程式讀取權限較高的程式的視窗,連視窗類別都讀不到。

開機自動啟動一律是一般權限(兩個安裝版本都一樣),因為「開機時自動以管理員身分啟動」正是防毒會判成惡意的持久化行為,本工具刻意不做。要控制提權程式時,用托盤選單的 以管理員身分重新啟動 當場提權(每次開機後、要用之前按一次,過一次 UAC)。

只在意一般程式(跨視窗維持模式、綁定一般程式)的話,完全不需要提權,...-setup-user.exe 就夠用。

進階:真的想要提權開機。 本工具刻意不內建(理由如上),但你可以自己用工作排程器建立一個「登入時、以最高權限」的工作。以系統管理員開啟命令提示字元,執行(路徑換成實際安裝位置;admin 版預設在 C:\Program Files\ImeModePersistence):

schtasks /Create /TN "ImeModePersistence-Elevated" /TR "\"C:\Program Files\ImeModePersistence\ImeModePersistence.exe\"" /SC ONLOGON /RL HIGHEST /F

/RL HIGHEST 讓它登入時以最高權限啟動且不跳 UAC。建立後,請到托盤選單把 app 內建的開機時自動啟動關掉,否則未提權的 HKCU Run 登錄項目會在登入時再開一個未提權實例。移除這個排程:schtasks /Delete /TN "ImeModePersistence-Elevated" /F

綁定的是語言,不是特定輸入法 中文、英文、日文可以分別綁定。但同一個語言裝了多個輸入法(注音和倉頡都算中文)時無法指定其中某一個,會用第一個已安裝的。

有些程式切換後又自己變回去 本工具會重試幾次,若該程式堅持用自己的設定就先放手再試 —— 從幾秒開始,愈搶愈久,最多半分鐘,這是刻意的,避免互相搶。切到別的視窗再切回來會立刻重試。

會不會被防作弊誤判? 不修改遊戲、不讀寫它的記憶體、不注入任何東西、不模擬按鍵。切換的方式是向視窗投遞 Windows 標準的「切換輸入語言」通知(跟你按 Win+Space 時系統發出的是同一種,視窗可以自行忽略),行不通時改請 Windows 自己切換。完整清單與判斷依據在 Helldivers 2 那頁。

其他

介面語言跟著 Windows 的顯示語言自動選擇(英文、繁中、簡中、日文、韓文)。安裝程式的畫面只有英文。深色模式下,程式綁定對話框整個套用;狀態/錯誤這類暫時性小框維持淺底、僅標題列變暗。

Clone this wiki locally