Windowsでctfmon(テキストサービス)を自動起動しないようにする(ctfmon.exeプロセスとは?)Tech TIPS

Windows XP/Windows Server 2003には、アプリケーションへの入力フロントエンドを拡張するためのテキストサービス(ctfmon.exe)が標準で提供されており、システム起動時に自動的に起動される。だが、テキストサービスによる拡張入力機能は不要なユーザーが多いし、ctfmon.exeによる不具合も多数報告されている。ctfmonを無効にし、以後自動起動されないようにするには?

» 2005年10月29日 05時00分 公開
[小川誉久デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows XP/Windows Server 2003



解説

 Windows XPやWindows Server 2003をインストールしたコンピュータでタスク・マネージャを起動し、現在実行されているプロセスの一覧を表示させると、“ctfmon.exe”という名前のプロセスが実行されていることが分かるだろう。

Windows XPのタスク・マネージャでプロセスを一覧したところ Windows XPのタスク・マネージャでプロセスを一覧したところ
デフォルトでは、ctfmon.exeという名前のプロセスが実行されている。
  (1)実行中のctfmon.exeプロセス。

 ctfmon.exeはテキスト・サービスと呼ばれるバックグラウンド・プログラムで、Windows XP以降のWindows OS(原稿執筆時点ではWindows XPとWindows Server 2003)をインストールすると標準でインストールされ、ログオン時に自動起動される。テキスト・サービスは、アプリケーションの入力処理機能を拡張するために提供されているもので、このプログラムにより、キーボード入力だけでなく、音声認識入力や手書き認識入力などを統合的に扱えるようになる。かな漢字変換用のIMEという枠を超えて、テキスト入力を統合的に使えるようにする試みと考えられる。デスクトップやタスクトレイに表示される「言語バー」は、このサービスの一部である。

 しかし、このサービスに対応しているアプリケーションはほとんど存在しない。多くのデスクトップWindowsユーザーにしてみれば、音声認識も手書き認識も無用な機能なので、メモリなどのリソース消費、不安定要因排除などの観点から、不要なプログラムなら実行したくないと考えるだろう(上記画面では、このプログラムは2.5Mbytes程度のメモリが消費されている)。さらにマイクロソフトによれば、このテキスト・サービスが実行されていると、さまざまな問題が発生するという。具体的な問題点は次のとおりである。

 いずれも入力関連のトラブルだ。使ってもいないプログラムが原因でこれだけの問題が起こるなら、何としても無効にしたいものだ。

 しかしmsconfigツールを使って([スタートアップ]に表示されている)起動時のプログラム一覧からctfmonを解除しただけでは、起動を完全に抑止することはできない(msconfigを利用した起動時プログラムの操作法については関連記事を参照)。ctfmonを自動起動しないようにするには、msconfigツールではなく、コントロール・パネルで設定を行う必要がある。

操作方法

 ctfmonを自動起動しないようにするには、コントロール・パネルの[地域と言語のオプション]アイテムを起動し(カテゴリ表示では[日付、時刻、地域と言語のオプション]→[地域と言語のオプション])、表示されるダイアログの[言語]タブにある[テキスト サービスと入力言語]グループの[詳細]ボタンをクリックする。

[地域と言語のオプション]ダイアログ [地域と言語のオプション]ダイアログ
コントロール・パネルの[地域と言語のオプション]アイテムを起動し[言語]タブをクリックし、[テキスト サービスと入力言語]グループの[詳細]ボタンをクリックする。
  (1)これをクリックする。

 するとWindows XP SP1以降では、次のダイアログが表示されるので、[詳細設定]タブをクリックする(Windows XP SP未適用については後で述べる)。

[テキスト サービスと入力言語]ダイアログ [テキスト サービスと入力言語]ダイアログ
Windows XP SP1以降の場合は、このダイアログにある[詳細設定]タブをクリックする。
  (1)これをクリックする。

 そして次のダイアログで[詳細なテキスト サービスをオフにする]チェック・ボックスをオンにする。

[詳細設定]タブ [詳細設定]タブ
ctfmonを無効にし、自動起動させないようにするには、ここで[詳細なテキスト サービスをオフにする]チェック・ボックスをオンにする。
  (1)これをオンにする。

 こうして[OK]ボタンをクリックすると、現在実行中のctfmon.exeプロセスは終了され、msconfigの[スタートアップ]からもctfmonのエントリが削除される(Windows XP SP1以降の場合)。

●Windows XP SP未適用の注意点

 Windows XPのSP未適用環境の場合には、上記[テキスト サービスと入力言語]ダイアログに[詳細設定]タブが存在しない。SP未適用の場合には、[テキスト サービスと入力言語]ダイアログの[設定]タブの左下にある[言語バー]ボタンをクリックして表示される[言語バーの設定]ダイアログに[詳細なテキスト サービスを無効にする]チェック・ボックスがある。

 またSP未適用の場合は、[テキスト サービスと入力言語]ダイアログで[詳細なテキスト サービスを無効にする]チェック・ボックスをオンにしても、現在実行中のctfmon.exeプロセスの終了やmsconfigの[スタートアップ]におけるctfmonエントリの削除は実施されない。従ってSP未適用環境では、手作業でこれらの処理を実施する必要がある。

 また重大な問題として、SP未適用環境でctfmon.exeを停止すると、言語バー(現在の入力モードの状態を表示する小さなウィンドウ)が表示されなくなってしまう。この場合、MS IME 2002独自のバーも表示されない。ただし言語バーが表示されないだけで、日本語入力は可能である。これは想像だが、当初はctfmon.exeを必須コンポーネントとして位置づけており、IMEのバー表示も言語バーに依存していたが、前記のように問題が続出するため、ctfmon.exeがなくてもバーが表示可能なように変更するとともに、設定用のユーザー・インターフェイスを変更したのではないかと思われる。ATOKなど、言語バーに依存しない他社製フロントエンドを使用しているなら特に問題はないが、IME 2002などを使っている場合は注意が必要だ。

 なお、Windows XP SP1/SP2、およびWindows Server 2003 SP未適用/SP1では、言語バーがなくてもMS IME 2002独自のバーが表示されるように変更されている。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。