Skip to content

Home Japanese

mangokingTW edited this page Aug 20, 2026 · 10 revisions

 ImeModePersistence

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

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

⚠ 開発中かつ未署名 — ご自身で判断してください

このユーティリティはまだ開発中で、コード署名証明書がありません。そのため Windows Defender がウイルスと判定し、そのまま削除してしまうことがあります。既知の検出名は Behavior:Win32/Persistence.A!ml です。

この検出は、ログオン時に自動的に起動する によって作成されるログオンタスクに対するものです。ログオン時に起動しようとするプログラムはどれも同じことを行いますが、未署名のプログラムがそれを行うと、動作監視の警戒対象になります。誤検知としてマイクロソフトへ報告済みですが、ウイルス対策ソフトがどう判断するかは誰にも保証できません。

ソースコード、ビルドワークフロー、リリース成果物はすべて公開されており、タグ付けされたコミットから GitHub Actions によってビルドされています。そのため、検査や再現が可能です。これを踏まえ、使い続けるかどうかはあなたの判断です。

削除されてしまった場合は、ポータブル版の zip を使うか、ログオン時に自動的に起動する のチェックを外してください。

コード署名について: リリースは未署名です。代わりに各成果物へビルドの来歴(build provenance)が付きます —— GitHub Actions がタグからビルドし、gh attestation verify で検証できる証明が添付されます。

インストール

Releases から入手してください。

ファイル 内容
...-setup-admin.exe 管理者権限が必要。アンチチートで保護されたゲームには必須
...-setup-user.exe 管理者権限は不要だが、昇格されたプログラムは制御できない
...-x64.zip ポータブル版。解凍して実行するだけ

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

よくある障害が 2 つあります。

  • 青い PC が保護されました 画面 → 詳細情報 → 実行 をクリックします。ファイルが未署名であるための評価に関する警告であり、ウイルス検出ではありません。
  • ウイルス対策ソフトがインストーラーを削除する → 未署名のインストーラーはヒューリスティックによって頻繁に捕捉されます。機能的に同一であるポータブル版の zip を使ってください。

必要になる理由

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

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

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

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

できること

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

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

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

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

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

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

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

ウォークスルー

何をしているか確認する

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

ホバーで表示される状態

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

よくある質問

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

管理者として実行すべきですか? それ自体が管理者として実行されるプログラム(多くのアンチチートゲームがそうです)を制御する場合のみです。Windows は権限の低いプログラムが権限の高いプログラムのウィンドウを読み取ることを、ウィンドウクラスさえも許しません。自動起動は常に非昇格で実行されます(どちらのインストーラーでも)。ログオンのたびに黙って昇格して起動するプログラムこそ、ウイルス対策ソフトがフラグを立てる永続化パターンなので、このユーティリティはあえてそれを行いません。昇格されたプログラムを制御するには、トレイメニューの 管理者として再起動 を使い、その場で昇格します。セッションにつき 1 回、必要になる前に、UAC のプロンプトを 1 回受け入れます。通常の用途(モードの維持、非昇格プログラムのバインド)では昇格は不要で、...-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 のプロンプトなし でログオン時に最上位の特権で起動します。作成後は、トレイメニューでアプリ自身の ログオン時に自動的に起動するオフ にしてください。そうしないと、非昇格の HKCU の Run エントリがログオン時に 2 つ目の非昇格コピーを起動してしまいます。タスクを削除するには: schtasks /Delete /TN "ImeModePersistence-Elevated" /F

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

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

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

その他

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

Clone this wiki locally