

Windows 10で、IMEである言語バーが消える、見えない、なくなる,
表示されないという症状になったことがあるのですが、たいていは自分の操作が原因なのです。
自分が陥った例として
- 複数の言語をインストールしたWindowsで1つの言語をアンインストールした
- Microsoft Office の1つの言語のオフィスをアンインストールした
ということから言語バーが消えてなくなったわけです。
↓はアンインストールして一覧には表示されてない画像ですが、たとえば
Microsoft Office Professional 2019 - en - us
というオフィスをアンインストールしたとします。
そうするとIMEの機能がオフなってしまうってことなのです。

当時、先ほどと同様に英語版とスペイン語版と日本語版のAccess2019をインストールしたわけで、英語版をアンインストールしたらIMEが出てこなくなったという‥

再度英語版をインストールすれば復活できるんじゃないの?と思われますが、復活できませんでした‥
‥
さて、そこでわかったことは、IMEを呼び出す(言語バーを呼び出す)ものが起動していないのでは?と思うわけで、それを特定してしまえばなんてことはないという。
今回特定するものはCTFローダーです。
タスクマネージャを起動して「プロセス」タブで、「CTFローダー」が起動しているかを見てみましょう。
タスクマネージャは通常タスクバーを右クリックから起動するか、
「CTRL」+「SHIFT」+「ESC」で立ち上がります。タスクマネージャはたびたび起動させるのでその方法を覚えておきましょう。

CTFローダーが起動していないならそこがおかしいということであり、CTFローダーが起動しているなら問題はそこじゃないということがわかります。
起動しているなら「CTF ローダー」を右クリックして「詳細の表示(G)」でこの実行ファイルが何なのかを見ておきます。

CTF ローダーの実体は「ctfmon.exe」という実行ファイルです。
これをメモしておいてください。

じゃあ、起動していない場合は?
CTFローダーが問題なので、先ほどのctfcom.exeファイルを実行させちゃいましょう。
同じタスクマネージャから、「ファイル(F)」→「新しいタスクの実行(N)」の順に選択します。

先ほどメモしてもらった「ctfmon.exe」を入力してもらって
「このタスクに管理者特権を付与して作成します。」
にチェックをいれて「OK」にします。(ctfmon.exeの「.exe」の拡張子は省略できます)

そうすると、IME(言語バー)がタスクバーに表示されるようになっている、はずです。
もし、それでも言語バーが出てこないようなら、ちょっとわかりません‥
別のやり方になろうかと思います。
たとえば
下の画像のようにTextServicesFrameworkのところ。

まぁそれは別の機会に説明するとして、次にすすめます。
言語バーであるIMEが復活しているなら、ちゃんと日本語入力するか確認しておきましょう。
そこで、『直った~♪」と思わないようにしましょう。まだ終わっていません!
そこで確認が出来たらWindowsを再起動させましょう。
再起動させる理由は、Windowsが起動後もIMEが表示されるかの確認のためです。
あっ、再起動じゃなくシャットダウンにしてしまった

‥
気を取り直して起動させます。

??
IMEが出てないですか?出てない!!

タスクマネージャを起動させて「詳細」タブから名前の順にソートして「ctfmon.exe」がちゃんと起動しているか確認しましょう。
↓画像では起動してませんねぇ。弱ったことに。今後Windowsの起動と共に毎回新しいタスクを実行させないといけないのは正直苦痛です。

ではどうすれば??いろんな方法がありますが、主に2つの方法が挙げられます。
- 1つ目はタスクスケジュールで起動させる
- もう1つはスタートアップに登録する
1つ目のタスクスケジュールはちょっと面倒なので割愛。(やっていることは簡単なのですが説明が長くなるのでという意味で
)
2つ目のスタートアップの登録はレジストリに直接入力とかいろいろありますが、今回は1番簡単なショートカットをスタートアップにおいておく方法を採りたいと思います。(説明が簡単だし、初心者でもやっていることがわかるから
)
もし、これにより挙動がおかしいなど不安定なら置いたファイルを削除すればいいわけですからね。メンテも楽チンです。
次ですが・・・
タスクマネージャでctfmon.exeが起動していればすぐにその場所にいけるのでしょうが、動いていないので自力でその場所まで行ってもらいます。

PCの『C:\Windows\System32』の場所まで行ってもらって、
ctfmon.exeを探してもらい、それをデスクトップにショートカットを作成します。(起動中OSがCドライブ以外は「C:」のCの文字を起動OSのドライブレターに置き換えてください)

ちょっと見つけにくかったと思いますが、
その「ctfmon.exe」を右クリックして、
「送る(N)」→「デスクトップ(ショートカットを作成)」
でデスクトップにショートカットを作っておきます。

ちなみに、この「送る」は非常に便利な機能なので、ぜひ使いこなしてください。
ですからとろにゃんのPCにはたくさんの項目がありますよね~♪
だいたいBase64やStirlingなんてものある時点で察してください^^
まぁStirlingよりも左にある「MIFESのバイナリモードで開く」を使いますがね。
話がそれちゃいましたが、続きをやってまいりましょう。
Explorerの画面を出していると思いますので、そこのアドレス欄に、以下の
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
をコピーしてそのExplorerのアドレス欄に貼り付けてその場所に移動します。
デスクトップにctfmon.exeのショートカットを作成してもらいましたが、そのショートカットを切り取ってスタートアップの場所に貼り付けましょう。
(ドラッグアンドドロップでもかまいません)
<おさらい>
コピーしたアドレスよりスタートアップの場所に来ました!

デスクトップに作成したctfmon.exeのショートカットを右クリックで「切り取り」をします。

スタートアップのところに貼り付けようとするとこんなメッセージが出ますが、
そのまま「続行(C)」にします。

無事貼り付けられました!

ctfmon.exeのショートカット名が気になるならリネームしてもらってもかまいません。
とろにゃんはそのままにしておきますがね♪
まだ再起動させないでくださいね!したいのはわかりますが、ちょっと確認を。
タスクマネージャを起動させ、「スタートアップ」タブを開いて
「CTF ローダー」が有効として登録されているか見ておきましょう。

それを確認したら、Windows の再起動です!
‥
再起動中。ドキドキ

うわ~、IMEが復活してる!


これにて無事に言語バーが表示されました!
ちゃんと日本語入力ができるかどうかも確認しておきましょう。
最後に、今回の場合、スタートアップの機能はオンにしておかなければなりません。
それでもオフにしたい気持ちは十分わかります。
その場合はタスクスケジュールでOS起動と同時、又はレジストリを直接入力しておくかになります。
直接入力は以下の画像を参考に。
ただし、スタートアップとタスクスケジュールとレジストリのRunとを同時登録を行なうという無茶なことをされると不安定になったり、Windowsの起動が遅くなったりしますので、1つだけ行なってください。
あぁ、↓の値のデータは「%SystemRoot%\system32\ctfmon.exe」でもいいと思いますがね。

レジストリのregファイル化したもの。

タスクスケジューラ画面。やっていることはスタートアップと同じですね。

ってことで、これにて終了です。
おつかれさまでした。
説明の中で言っていたTextServices Frameworkは別件で扱うかもしれません。