こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、Windows Server 2019 において、アプリケーション上で Microsoft IME による日本語入力ができない不具合についてご案内します。
現象
========
RemoteDesktop サービスが有効な Windows Server 2019 において、Terminal Server 非対応のアプリケーション (※ 1) を実行すると、そのアプリケーション上で以下のように Microsoft IME による日本語入力ができない不具合が発生します。
- [半角/全角漢字] キーを押下して Microsoft IME の入力モードを日本語入力 ON にしようすると、[Japanese IME in note ready yet] というトースト通知が表示されます。
- Microsoft IME の入力モードが、日本語入力 OFF のまま切り替わりません。
(※ 1) Terminal Server 非対応アプリケーションに該当するものとしては、以下があげられます。
- Visual Basic 6.0アプリケーション
- Visual Studioを使ってビルド、またはMicrosoft (R) Incremental Linkerを使ってリンクされたアプリケーションで、且つリンカー オプション /TSAWARE を指定せずにリンク (※ 2) されたアプリケーション
(※ 2) Visual Studio 2008以前またはMicrosoft (R) Incremental Linker 9.00 以前を利用してリンクされたアプリケーションの場合は、規定では/TSAWAREは指定されません。Visual Studio 2010以降またはMicrosoft (R) Incremental Linker 10.00 以降を利用してリンクされたアプリケーションの場合は、/TSAWAREが既定で指定されます。
原因
========
Windows Server 2019 の Microsoft IME は、アプリケーションの起動時に、%WINDIR% 配下のシステム辞書ファイルを参照して初期処理を行います。
ところが、RemoteDesktop サービスが有効な Windows Server 2019 において、Terminal Server 非対応のアプリケーションを実行した場合は、%WINDIR% ではなく、ユーザー プロファイル配下へシステム辞書ファイルを参照しようとします。
その結果、Microsoft IME は初期化処理に失敗し、そのアプリケーション上で日本語入力ができない不具合が発生します。
状況
========
マイクロソフトではこの不具合を調査中です。
回避策
========
以下、二つの回避策のいずれかをご検討ください。
回避策 (1) リンカー オプションから、下記 /TSAWARE オプションを有効にしてアプリケーションをビルドしなおしてください。
/TSAWARE オプションを有効にした時のアプリケーションへの影響については、上記ドキュメントの Remarks をご参照ください。
回避策 (2) Visual Studio に同梱されている Microsoft COFF Binary File Editor (EDITBIN.EXE) ツールを用いて、アプリケーションの実行可能ファイルに対して TSAWARE リンカーオプションを有効にしてください。
例) Editbin.exe /TSAWARE Project1.exe