Windowsで、ときどき文字入力、特に日本語入力ができなくなることがあります。
そんな場合に、
ctfmon.exe
を起動すれば解決することがよくあります。
しかし、リブートするたびに日本語入力が無効になっている場合、根本原因は別のところにあります。
毎回ctfmonを起動すればいいといえばいいのですが、やはり気持ち悪い。
ハッキリさせて、スッキリしましょう!
症状
Windows 10にて、スタートボタンの横にある箱(なんていうんだ?)に文字入力ができなくなりました。
何かお手伝いできることはありますか→入力できるようにしてくれよ...
また、
- モダンUIのウィンドウで、文字が何も入力できない。
- 他のすべてのウィンドウで、日本語が入力できない。
という状況でした。
まずはトラブル...シューティング?
Windows 10には「トラブルシューティング」というありがたい(?)機能が備わっていますので、試してみましょう。
スタートボタン→設定→更新とセキュリティ
と選択すると、トラブルシューティングという項目があります。
ここで、キーボードという項目があるので、トラブルシューティングを実行します。
実行結果が上の画面。「テキストサービスフレームワークが実行されていません」ということで、原因がわかりました。
しかし、「未解決」となっています。その下に「テキストサービスフレームワークの修復 完了」と書いてありますが、嘘です。
この時点では何も変わっておらず、文字は入力できません。
原因
原因は、上のトラブルシューティングにあるとおり、テキストサービスフレームワークが起動していないためです。
このモジュールはタスクスケジューラ内にあり、タスクスケジューラを起動して
タスクスケジューラライブラリ→Microsoft→Windows→TextServicesFramework
を起動すればいいわけです。
ところが、私の場合、タスクスケジューラを起動すると、
タスクスケジューラ死亡...
となってしまいます。
こちらの原因は、タスクスケジューラのサービス自体がスタートしていないことが原因です。
なので、サービス(services.msc)を立ち上げ、Task Schedulerを起動する必要があります。
ところが、ここで「サービスの開始」を押すと、
ローカルコンピューターのTask Schedulerサービスを開始できません。
エラー 1067:プロセスを途中で強制終了しました。
というエラーが出てしまい、起動できません。
詰んだ。
解決法
いろいろ調べたところ、レジストリ内に格納されているエラーステータスが邪魔をしていることがわかりました。
わかってしまえば対応は実は簡単で、レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance\State\ReportedState
の値を3から0にするだけです。
修正したら、もう一度サービスからタスクスケジューラの起動をしてみてください。私の場合は起動できました。
続いて、タスクマネージャを起動してみます。
これでOkです。タスクマネージャが起動すれば、テキストサービスフレームワークの方は特に何もしなくても起動していました。
文字入力もできるようになりました。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!