Windows10で何故か突然IMEが無効になり、日本語入力ができなくなってしまったときの原因究明と対策方法を解説します。
以下の順序で調査して原因を特定し、その原因に応じた対策方法を実行してみてください。
※動作確認環境
Windows10 PRO バージョン2004
サービスの確認(Touch Keyboard and Handwriting Panel Service)
IMEが無効になる原因として、Windowsの「Touch Keyboard and Handwriting Panel Service」というWindowsのサービスが無効になっているというケースがあります。
このサービスが無効になっているとIMEも無効になってしまいますのでまず確認します。
スタートボタン⇒「Windows 管理ツール」⇒「サービス」をクリックします。
※検索画面から「サービス」でもOKです。
「サービス」画面が開いたら、名前が「Touch Keyboard and Handwriting Panel Service」の項目を確認します。
ここで、状態が「実行中」およびスタートアップの種類が「手動 (トリガー開始)」になっていない場合は、これがIMEが無効になった原因です。
状態の部分が空白だった場合は、「Touch Keyboard and Handwriting Panel Service」をダブルクリックしてプロパティ画面を開き、「スタートアップの種類」を「手動」に変更して「OK」ボタンを押します。
その後、PCを再起動してIMEが有効になっていれば対策完了です。
DISM.exeとsfc /scannowでWindowsを修復
「Touch Keyboard and Handwriting Panel Service」が実行中にも関わらずIMEが無効になっている場合は、DISM.exeとsfc /scannowを実行してWindowsの修復を行います。
スタートボタンを右クリック⇒「Windows PowerShell(管理者)」を開きます。
DISM.exe /Online /Cleanup-image /Restorehealth と入力してEnterキーを押してください。
1 |
DISM.exe /Online /Cleanup-image /Restorehealth |
次に、sfc /scannow と入力してEnterキーを押します。
1 |
sfc /scannow |
これでWindowsにエラーがあれば修復されます。PCを再起動してIMEの状況を確認してみましょう。
DISM.exeとsfc /scannowに関しては当ブログの以下の記事で詳しく解説していますので参考にしてみてください。
DISM.exeとsfc /scannowでWindowsの修復が行われ、PCの再起動後にIMEが有効になっていれば対策完了です。
CTFローダー(ctfmon.exe)の動作確認
「Touch Keyboard and Handwriting Panel Service」が実行中で、DISM.exeおよびsfc /scannowを実行したにも関わらずIMEが無効の状態の場合はタスクスケジューラーのエラーが考えられます。
原因を特定するための材料としてWindowsのCTFローダー(ctfmon.exe)のプロセスを調査します。
Windows PowerShell(管理者)でプロセスを調査
スタートボタンを右クリック⇒「Windows PowerShell(管理者)」を開き、以下のコマンドで実行中のプロセスからctfmon.exeを検索します。
1 |
tasklist /fi "imagename eq ctfmon.exe" |
ctfmon.exeのプロセスが存在した場合は以下のように表示されます。【A】に進んでください。
プロセスが無い場合は、指定された条件に一致するタスクは実行されていないと表示されます。【B】に進んでください。
【A】ctfmon.exeのプロセスがある場合
ctfmon.exeのプロセスが存在して詳細が表示された場合は、通常ならIMEが有効になるはずです。しかし、プロセスは存在するがIMEが無効になっているという状態の場合は、念のため一度手動でctfmon.exeを再起動して再度IMEの状態を確認します。
以下のコマンドでプロセスを停止します。(※プロセス番号の部分は先ほど調べたctfmon.exeプロセスのPIDの部分の数字を入力してください。)
taskkill /pid プロセス番号
1 |
taskkill /pid 6176 |
ctfmon.exeは停止されると自動的に再度起動しますので、自動起動が正常に行われたか以下のコマンドで確認します。
1 |
tasklist /fi "imagename eq ctfmon.exe" |
ctfmon.exeの再起動後にIMEをチェックして以下の(a-1)または(a-2)の対策を行ってください。
(a-1)ctfmon.exeの再起動でIMEが有効になる場合
ctfmon.exeの再起動でIMEが有効になる場合は、インストールされている他のアプリがIMEに影響を与えていることが考えられます。不要なアプリを削除したり、スタートアップに登録されている不要なアプリを停止して状況が改善するかテストしてみて下さい。
(a-2)ctfmon.exeは再起動したがIMEは無効のままの場合
ctfmon.exeが再起動してプロセスが存在しているのにIMEが無効のままという場合は、システムの復元、Windowsの上書きインストールなどの根本的な対策が必要となります。
【B】ctfmon.exeのプロセスが無かった場合
初回のctfmon.exeプロセス確認時に、はじめからctfmon.exeのプロセスが存在しなかった場合には、タスクスケジューラー関連のエラーの確率が一気に高くなります。
まず、手動でctfmon.exeを起動してIMEが有効になるかテストを行いますので以下のコマンドを実行してください。
1 |
ctfmon.exe |
次に、正常にctfmon.exeが起動しているかを、もう一度以下のコマンドで確認します。
1 |
tasklist /fi "imagename eq ctfmon.exe" |
結果により(b-1)または(b-2)の対策を行ってください。
(b-1)手動でctfmon.exeが起動できてIMEが有効になった場合
ctfmon.exeのプロセスが確認できてIMEが有効になった場合は、IME無効の原因はタスクスケジューラーのエラーです。下記のURLを参考にタスクスケジューラーのエラー修正を行ってみてください。
■Windows 10のトラブルシューティング事例――壊れたタスクを復元する/削除する
https://www.atmarkit.co.jp/ait/articles/1603/14/news033.html
しかし、根本的な原因はタスクスケジューラーのエラーであり、タスクスケジューラーは他のシステムにも影響を与えますので、タスクスケジューラーエラーの根本的な対策をお勧めします。
【備考】スタートアップにctfmon.exeへのショートカットを作成するPowerShell(管理者)のコマンド
1 |
$APPD=$env:APPDATA;$WS=New-Object -ComObject WScript.Shell;$SC=$WS.CreateShortcut("$APPD\Microsoft\Windows\Start Menu\Programs\Startup\ctfmon.exe - ショートカット.lnk");$SC.TargetPath="C:\Windows\SysWOW64\ctfmon.exe";$SC.IconLocation="C:\Windows\SysWOW64\ctfmon.exe";$SC.Save() |
1 |
$APPD=$env:APPDATA;$WS=New-Object -ComObject WScript.Shell;$SC=$WS.CreateShortcut("$APPD\Microsoft\Windows\Start Menu\Programs\Startup\ctfmon.exe - ショートカット.lnk");$SC.TargetPath="C:\Windows\System32\ctfmon.exe";$SC.IconLocation="C:\Windows\System32\ctfmon.exe";$SC.Save() |
エクスプローラーのアドレスバーに shell:startup と入力してEnterでスタートアップフォルダの中身を確認できます。
(b-2)手動でのctfmon.exe起動が失敗した場合
もう一度、Windowsサービスの「Touch Keyboard and Handwriting Panel Service」が実行中になっているかチェックし、「Touch Keyboard and Handwriting Panel Service」が実行中であれば、Windows自体に何かしらのエラーが発生しています。
対策としては、システムの復元、Windowsの上書きインストールなどの根本的な対策が必要となります。
まとめ
IMEが突然無効になり、日本語入力ができなくなってしまったときは以下の手順でチェックと対策を行い、IMEが有効になるか試してみてください。
- サービスにて「Touch Keyboard and Handwriting Panel Service」の状態を確認し、サービスの状態が無効だった場合は「スタートアップの種類」を「手動」に変更してPC再起動
- DISM.exeとsfc /scannowでWindowsを修復
- CTFローダー(ctfmon.exe)の動作確認を行い、タスクスケジューラーが原因だった場合にはとりあえず応急処置(スタートアップにctfmon.exeへのショートカットを作成)を行い、その後タスクスケジューラーの修復
- 上記の全てを試してもIMEが無効な場合は、システムの復元またはWindowsの上書きインストールにて対応
以上です。