【ctfmon.exe】IMEで日本語入力と変換ができなくなったときのコマンド
目次
急に日本語入力ができなくなった!
Windows10でネットの検索しようと、ヤフーの検索窓に文字を入力しようとしたら半角/全角を押しても日本語入力ができない状況になりました。
症状
- アルファベット(半角英数字)しか入力できない
- 半角/全角またはAlt+半角/全角を押してもダメ
- タスバーにIMEのアイコンがいない
- [あ]や[A]も表示されない
同様にネットにあった症状
- IMEが起動していない、または勝手に落ちて終了または停止しているっぽい
- 『IMEが無効です』とエラーが表示された
- 言語バー(IMEツールバー)が表示されない
このようなときにコマンドからIMEを起動/再起動させて回復する方法を見つけたのでメモ。
回復する方法
コマンドプロンプトを起動し、以下のコマンド実行します。
IMEを起動するコマンド
ctfmon.exe |
コマンドを実行したら、半角/全角または変換を押すと無事に復旧し、『ひらがな』の入力と変換ができるように戻り、IME日本語入力が復活するはずです。
ctfmon.exeについて
調べてみるとctfmon.exeはテキスト・サービスと呼ばれ、Windowsログオン時に自動起動されるバックグラウンド・プログラムです。このサービスはキーボードによるテキスト入力だけでなく、音声認識入力、手書き認識入力などを統合的に扱えるようにしているもので、デスクトップやタスクトレイに表示される『言語バー』は、このサービスの一部だそうです。
今回、何等かの問題でWindows起動時にこのサービス(ctfmon.exe)が正常に起動できず、このようなことが起きたと思われます。
関連コマンド
IMEのプロセスIDを確認するコマンド
tasklist /fi "imagename eq ctfmon.exe" |
プロセスID指定してIMEを強制終了させるコマンド
コマンドプロンプトもPowerShellのどちらも管理者として実行が必要です。
コマンドプロンプト
taskkill /pid 40172 ←上で調べたctfmon.exeのPIDを指定 |
PowerShell
ps -Name "ctfmon" | %{taskkill /pid $_.ID; ctfmon.exe} |
IMEを再起動するバッチファイルのソース
既にIMEが起動していて、IMEの再起動をしたい場合に使えるバッチファイルです。動作としては、起動中のIMEを強制終了させて、再度IMEを起動するという方法です。 管理者として実行しないとエラーになります。
@ echo off @ setlocal enabledelayedexpansion echo . echo IMEを再起動します。 echo . echo プロセスIDを調べています。 for /f "tokens=1,2" %%i in ( 'tasklist /fi "imagename eq ctfmon.exe"' ) do @ set PID= %%j tasklist /fi "imagename eq ctfmon.exe" rem 余計なスペースを削除 call :Trim !PID! echo . echo プロセスIDを "!PID!" を取得しました。 echo . echo IMEを終了させています。 echo . taskkill /pid !PID! echo . echo IMEを起動しています。 ctfmon.exe echo . echo IMEの再起動が完了しました。 echo . goto End :End endlocal pause exit :Trim set PID= %* |
バッチファイルのダウンロード
上記のバッチファイルをここからダウンローどできます。ZIP圧縮していますので、解凍してご利用ください。
ime_reset.zip(509 byte)スクリーンショット
バッチファイルを実行したときの画面。
もう一つ簡単なバッチファイル
@ echo off for /f "usebackq tokens=2" %%a in ( ` tasklist /fi "IMAGENAME eq ctfmon.exe" ^| findstr "[0-9]" `) do ( taskkill /pid %%a ) ctfmon.exe |
再起動しても再発する場合
正常に戻っても再起動後には再発する場合は、以下のページを参考にレジストリの変更を試してみてください。
その他、このページにある以下の部分が役に立ちそうです。
- 『ctfmon.exeの自動実行をさせる』の部分を参照
- 『TextServicesFrameworkの実行値を変更』の部分を参照
- 『「あ」も「A」も表示されない』の部分を参照