Skip to content

Home Japanese

mangokingTW edited this page Aug 28, 2026 · 10 revisions

 IME Mode Persistence

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

プログラム間での入力方式の挙動を制御する Windows ユーティリティです。最後に選んだ入力モード(かな入力または英数入力)を次のウィンドウへ引き継ぎ、さらに プログラムを特定の入力言語に固定 できます。これは、アンチチートで保護されたフルスクリーンゲームのように、実行ファイルを読み取れないプログラムにも対応します。

インストール

推奨:Microsoft Store —— 署名済みで自動更新されます。

Releases から入手することもできます:

ファイル 内容
...-setup.exe 標準インストーラー(現在のユーザー用または全ユーザー用を選択可能)
...-x64.zip ポータブル版。解凍して実行するだけ

セットアップ中に ログオン時に自動的に起動する にチェックを入れてください。その後、右下の通知領域で動作します。Windows 11 では、新しいアイコンは時計の隣にある シェブロンの奥に隠されます。インストールするとすぐに動作し、設定は不要です。

⚠ GitHub 版は未署名です

この注意事項は GitHub Releases からダウンロードした インストーラーや zip にのみ当てはまります。上記の Microsoft Store 版は署名済み で、以下の問題は発生しません。

GitHub ビルドには現在コード署名証明書がないため、次のような事象が起きることがあります:

  • 青い PC が保護されました 画面 → 詳細情報 → 実行 をクリックします。これは評価に関する警告であり、ウイルス検出ではありません。
  • ウイルス対策ソフトがインストーラーを削除する —— 既知の検出名は Behavior:Win32/Persistence.A!ml で、ログオン時に自動的に起動する が作成するログオンタスクに対するものです。ポータブル版の zip を使うか、そのチェックを外してください。誤検知としてマイクロソフトへ報告済みですが、ウイルス対策ソフトがどう判断するかは誰にも保証できません。

ソースコード、ビルドワークフロー、リリース成果物はすべて公開されており、タグ付けされたコミットから GitHub Actions によってビルドされ、gh attestation verify で検証できるビルドの来歴が付きます。気になる場合は、上記の Microsoft Store 版を使えばこれらを完全に回避できます。

必要になる理由

Windows は IME の状態を スレッドごと に保持します。別のウィンドウへ移ると変換モードは IME の既定へ戻ります。中国語キーボードの場合、それは 中国語 を意味します。つまり Shift を押して英数にし、ウィンドウを切り替えると、また中国語を入力していることになります。

設定 → 時刻と言語 → 入力 → キーボードの詳細設定 → アプリウィンドウごとに異なる入力方式を使用する ではこれは解決しません。 この設定は どの 入力方式が有効になるかを制御するだけで、その方式がかなモードか英数モードかは制御しません。オフにしても、ウィンドウを切り替えれば中国語に戻ります。

変換モードをカバーする Windows の設定はありません。 これがこのユーティリティの 第一の 目的です。選んだかな/英数モードを次のウィンドウへ引き継ぎます。

第二の 目的は、特定のプログラムを入力言語に固定することです。これには、どの設定でも届かない種類のものも含みます。生の入力を読み取るフルスクリーンゲーム はキーボードを直接受け取り、IME の状態管理にまったく関与しないため、外部からしか扱えません。Helldivers 2 がその一例です。

できること

以下の機能はすべてトレイアイコンの右クリックメニューにあります:

トレイの右クリックメニュー

ウィンドウをまたいでモードを維持する(既定でオン) — あるウィンドウで中国語を入力し、別のウィンドウへ切り替えると、中国語が戻ってきます。Shift を押して英数にすれば、次のウィンドウでもそれが得られます。直近の意図的な変更に従います。不要ならトレイメニューでチェックを外してください。

アプリ言語バインド — プログラムを言語に固定します。ターミナルは常に英語、Word は常に中国語、というように。右クリック → アプリ言語バインド... から、参照 でプログラムを選ぶか、ファイル名だけを入力してインストール場所を問わず一致させるか、最後のアプリを使用 を押すか、ファイルを読み取れないプログラムには ウィンドウクラスを使用 を選びます。

アプリ言語バインドのダイアログ

パスにバージョンを含むプログラムや、ウィンドウクラスに自動生成された接尾辞が付くプログラムの場合は、代わりにワイルドカードを入力します。glob:*\game.exe はフルパスに一致し、class-glob:name_* はウィンドウクラスに一致します。*(パス区切りを含む任意の連続文字)と ?(1 文字)を使います。完全一致のルールはワイルドカードより優先されますが、これは既定の順序です。リストをドラッグして並べ替えることもでき、上から最初に一致したものが優先されます。各ルールは切り替え時に一度だけ適用(ウィンドウに入ったときに設定し、その後は強制しない)にでき、どれにも一致しないときは既定の言語(既定でオフ)を使えます。

キャレット入力インジケーター(既定でオフ) — トレイメニューの カーソル位置に入力インジケーターを表示 は、実際に入力される内容を示す小さなインジケーターをテキストキャレットの隣に置きます。言語のかなモードでは / / 、IME が英数モードのときは 、あるいは EN のような言語コードが表示されます。選択は記憶されます。インジケーターはキャレットに追従し、自身のウィンドウには重なりません。報告されるキャレット位置が信頼できないフィールド(Chromium の制約によるブラウザーのアドレスバーなど)では、テキストを覆わないよう行の上に描画されます。

入力インジケーターは次の場所には表示されませんタスクバーとスタートメニューの検索ボックスWindows ターミナルエクスプローラー。これらはシステムレベルの画面で、Windows はデジタル署名されたアプリケーションにのみ表示を許可しますが、本ツールは現在署名されていません。通常のアプリケーション(ブラウザー、メモ帳などのテキストエディター、Office、チャットアプリ、ゲームなど)では正常に表示されます。

ウォークスルー

何をしているか確認する

トレイアイコンはクリックではなく ホバー してください。クリックすると、確認したかったプログラムがフォーカスを失い、誤った表示を見ることになります。4 行が表示されます。現在のプログラム、そこにバインドされている言語、実際に使われている言語、そして直近の切り替えが成功したかどうかです。バインドされた言語と実際の言語が一致していれば、正常に動作しています。

ホバーで表示される状態

5 行目に 通常権限 - 昇格されたプログラムは見えません と表示される場合、ユーティリティは管理者として実行されていません。ダブルクリックすると、どの自動起動の仕組みが設定されているかを含む、より詳細な状態ウィンドウが開きます。

よくある質問

新しいメモ帳などのモダンウィンドウに切り替えたときに、入力モードが維持されないのはなぜですか? 新しいメモ帳などのモダン / WinUI アプリの実際の入力欄はフォーカスされた子ウィンドウにあり、Windows UIPI 機構によって保護されています:

  • 解決策(推奨):トレイメニューの「モダンウィンドウ (WinUI) サポートを有効化…」をクリックします(UAC を 1 回通過してバックグラウンドのヘルパーサービスを起動します)。これにより、Helper が UIPI 保護を越えて入力モードを維持します。Microsoft Store 版・通常のデスクトップ版のどちらでもサポートされています
  • デスクトップ版での直接昇格も可能:トレイメニューの「管理者として再起動」をクリックします。

現在のプログラムに class: で始まるものが表示される — これは正常で、不具合ではありません。一部のプログラム、主にアンチチートゲームは、他者がファイルの場所を読み取ることを許さないため、ユーティリティは代わりにウィンドウクラスで識別します。その class:... 文字列こそ、バインドルールが必要とするものです。

管理者として実行すべきですか? それ自体が管理者として実行されるプログラム(多くのアンチチートゲームがそうです)を制御する場合のみです。Windows は権限の低いプログラムが権限の高いプログラムのウィンドウを読み取ることを、ウィンドウクラスさえも許しません。自動起動は常に非昇格で実行されます。ログオンのたびに黙って昇格して起動するプログラムこそ、ウイルス対策ソフトがフラグを立てる永続化パターンなので、このユーティリティはあえてそれを行いません。昇格されたプログラムを制御するには、トレイメニューの 管理者として再起動 を使い、その場で昇格します。セッションにつき 1 回、必要になる前に、UAC のプロンプトを 1 回受け入れます。通常の用途(モードの維持、非昇格プログラムのバインド)では昇格は不要で、...-setup.exe で十分です。

上級者向け: どうしても昇格した自動起動が欲しい。 このユーティリティはあえてこれを組み込んでいません(理由は上記)が、タスクスケジューラの「ログオン時、最上位の特権」タスクで自分で設定できます。管理者 のコマンドプロンプトから、次を実行します(パスは実際のインストール場所に置き換えてください。全ユーザー向けインストールの既定は C:\Program Files\ImeModePersistence です)。

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

/RL HIGHEST は、UAC のプロンプトなし でログオン時に最上位の特権で起動します。作成後は、トレイメニューでアプリ自身の ログオン時に自動的に起動するオフ にしてください。そうしないと、非昇格の HKCU の Run エントリがログオン時に 2 つ目の非昇格コピーを起動してしまいます。タスクを削除するには: schtasks /Delete /TN "ImeModePersistence-Elevated" /F

バインドは言語を固定するのであって、特定の IME を固定するのではありません — 中国語、英語、日本語をそれぞれバインドできますが、1 つの言語に複数の IME がインストールされている場合は、最初のものが使われます。

すぐに元に戻してしまうプログラムがある — ユーティリティは数回リトライした後、プログラムと張り合うのではなく、次の試行まで間隔を空けます。最初は数秒、プログラムが頑固なほど長くなり、最大で 30 秒まで延びます。別のウィンドウへ切り替えて戻ると、即座にリトライします。

アンチチートにフラグを立てられる可能性は? ゲームを改変せず、メモリを読まず、何も注入せず、キー入力を合成しません。切り替えは、そのウィンドウに Windows の 標準的な入力言語変更通知 を送ることで行われます。これは Win+Space を押したときにシステムが送るのと同じもので、ウィンドウはそれを無視して構いません。それが効かない場合は、Windows 自身の入力設定にフォールバックします。すべての一覧は Helldivers 2 のページにあります。

その他

インターフェイスは Windows の表示言語(英語・繁体字中国語・簡体字中国語・日本語・韓国語)に従います。インストーラーは英語のみです。ダークモードでは、アプリ言語バインドのダイアログ全体に適用されます。状態やエラーの一時的なボックスは、本体は明るいままタイトルバーのみ暗くなります。

Clone this wiki locally