-
Notifications
You must be signed in to change notification settings - Fork 0
Helldivers 2
Helldivers 2 目前無法可靠地處理中文輸入法的狀態。進入遊戲時若系統還在中文模式,按鍵會被輸入法攔走,而遊戲內沒有穩定的方式切回英數。
這一頁說明如何用 ImeModePersistence 把這個遊戲固定綁在英文輸入語言上。需要 v0.6.0 或更新版本。
有兩層障礙,而第二層讓第一層的努力全部失效:
-
遊戲用 raw input。 一般工具靠對視窗發送
WM_INPUTLANGCHANGEREQUEST來切換輸入語言,而這個訊息只有在視窗把它交給DefWindowProc時才有作用。遊戲直接讀鍵盤裝置,不處理它。 -
反作弊阻擋
OpenProcess。 連「前景這個程式是誰」都讀不到 —— 即使以管理員身分執行也一樣。所以任何以「執行檔路徑」為條件的規則永遠不會觸發,切換機制再怎麼改都沒機會執行。
本工具對應這兩層的手段是:用視窗類別識別程式(GetClassName 只讀視窗屬性,完全不需要存取該 process),用 TSF 工作階段層級 API 切換(不對遊戲視窗發訊息、不注入、不附加)。
-
從 Releases 安裝 v0.6.0 或更新版本。
-
啟動它,不要以管理員身分執行(理由見下方疑難排解)。
-
啟動 Helldivers 2,然後 Alt-Tab 回到桌面。
-
到通知區域找到圖示 —— 時鐘左邊,Windows 11 預設把新圖示收起來,要先點 ⌃ 展開。圖示是藍色圓角方塊裡一個白色的「中」。
-
在圖示上按右鍵 → 程式綁定輸入語言…
-
按 用視窗類別。欄位應該出現:
class:stingray_window -
輸入語言 下拉選單選
英文 (美國),或你想固定的語言。 -
按 新增/更新。清單裡會出現這條規則。
-
回到遊戲。輸入語言會自動切換。
stingray_window 是 Autodesk Stingray 引擎的視窗類別名稱,Helldivers 2 用的就是這個引擎。你不需要自己查 —— 「用視窗類別」按鈕會用你切過來之前那個程式的類別自動填入。
把滑鼠停在托盤圖示上,不要點它。停留不會改變前景視窗;點下去會把前景交給工作列,你就看不到遊戲的狀態了。
提示文字會顯示四行,成功時應該是:
| 行 | 內容 |
|---|---|
| 當前程式 | class:stingray_window |
| 綁定語言 | 英文 (美國) |
| 實際語言 | 英文 (美國) |
| 上次切換嘗試 | TSF session - 已生效 |
「當前程式」顯示 class: 而不是完整路徑是正常的,不是故障 —— 反作弊不讓任何程式讀取它的執行檔路徑,所以工具顯示它唯一能確定的身分。
本工具預設會把你最後選的輸入模式帶到下一個視窗。如果你只想要「遊戲固定英文」而不要這個全域行為,在右鍵選單取消勾選 跨程式維持輸入模式。綁定規則不受影響,仍然照常生效。
| 症狀 | 原因與處理 |
|---|---|
當前程式顯示 class:stingray_window
|
正常。反作弊擋住路徑讀取,類別是可用的身分 |
當前程式顯示 (未知)
|
連視窗類別也拿不到。請確認遊戲確實在前景,而不是最小化 |
綁定語言顯示 (無規則)
|
規則沒比對到。核對清單裡的鍵值與提示文字顯示的 class: 完全一致 |
| 上次切換嘗試顯示「該程式未理會」 | TSF 沒能切換該視窗。請回報,但不要期待用更強硬的手段解決(見下) |
| 安裝時要求先關閉程式 | 你是以管理員身分執行常駐程式。UIPI 讓非提權的安裝檔無法自動關閉提權的視窗。從托盤選「結束」再用正常權限啟動 |
| 以管理員身分執行沒有改善 | 提權不會讓受保護的 process 變得可讀,還會讓開機自動啟動失效並在每次登入彈 UAC |
- 不注入遊戲 process、不附加到它的輸入佇列、不讀寫它的記憶體
- 切換走的是 TSF 的公開 API,由作業系統去改輸入語言
- 若仍然無法生效,約 930 ms 後安靜放棄,不會加大力道
理由很直接:上面那些手段正是反作弊存在的目的所要偵測的行為。就算技術上可行,代價可能是你的帳號被誤判封鎖 —— 那遠大於自動切輸入法的便利。
同樣的做法適用於任何讀不到執行檔的程式:把 stingray_window 換成該遊戲的視窗類別即可,而「用視窗類別」按鈕會自動填入。用同一個引擎的遊戲類別名可能相同。
Helldivers 2 does not reliably handle IME state. If the system is in Chinese mode when you enter the game, keystrokes are intercepted by the IME and there is no dependable in-game way back to alphanumeric.
Two barriers, and the second makes the first irrelevant:
-
The game reads raw input, so
WM_INPUTLANGCHANGEREQUEST— how ordinary tools switch a window's input language — does nothing. -
Anti-cheat refuses
OpenProcess, even to an administrator, so the foreground application cannot be identified at all and any rule keyed on an executable path never fires.
ImeModePersistence answers both: it identifies the window by class (GetClassName needs no process access) and switches through TSF's session-level API (no message to the game's window, no injection, no attachment).
- Install v0.6.0 or newer from Releases. Do not run it as administrator.
- Start Helldivers 2, then Alt-Tab back to the desktop.
- Right-click the tray icon (Windows 11 hides new icons behind the ⌃ chevron) → App language bindings...
- Press Use window class. The field should fill with
class:stingray_window. - Choose
English (United States)under Language, then press Add / update. - Return to the game.
stingray_window is the Autodesk Stingray engine's window class. You do not need to look it up — the button fills it in.
Hover the tray icon; do not click it. Hovering does not change the foreground window, whereas clicking hands it to the taskbar and you lose the reading you wanted. On success:
| Line | Value |
|---|---|
| App | class:stingray_window |
| Bound language | English (United States) |
| Active language | English (United States) |
| Last switch attempt | TSF session - took effect |
class: rather than a path is expected, not a fault: anti-cheat blocks reading the executable, so the utility reports the identity it could establish.
Uncheck Keep mode across windows in the tray menu. Bindings keep working.
Nothing is injected into the game, attached to its input queue, or read from its memory; switching goes through TSF's public API; and where that fails the utility gives up quietly after ~930 ms. Those techniques are what anti-cheat exists to detect, and a false positive costs you the account — which is worse than switching the language by hand.
ImeModePersistence · 下載 / Releases · 問題回報 / Issues · README · 設計筆記 / Design notes · MIT
本 Wiki 是操作說明;實作理由與被否決的做法記在設計筆記。發佈的檔案未經簽章。 This wiki is the how-to; implementation reasoning and rejected approaches live in the design notes. Released files are unsigned.
繁體中文
English
简体中文
日本語
한국어