Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、WPF アプリケーションから Ctrl + F7 のショートカットキー経由で、単語登録ツール (IMJPDCT.EXE) を開いたときの問題についてご案内します。
現象
WPF アプリケーション上で、TextBox や RichTextBox コントロール上の任意のテキストを選択し、Ctrl + F7 のショートカットキー経由で単語登録ツールを開くと、選択しておいたテキストではなく、クリップボード上のテキストが単語登録ツールに送信される現象が発生します。
この現象は、WPF アプリケーション上でのみ発生することが確認されています。
原因
本現象は、ショートカットキー経由で単語登録ツールを開いたときに、単語登録ツールに送信するためのテキストを取得する OS の内部処理に問題があるために発生しています。
ショートカットキー以外の方法で単語登録ツールを開いた場合は、異なる内部処理によってテキストが取得されるため、本現象は発生しません。
マイクロソフトでは、この現象について現在も調査中です。
詳細や、将来のバージョンでの対応計画については、わかり次第このブログに掲載する予定です。
回避策
回避策として、以下の方法が確認されています。
- 方法 (1)
IME ツールバーから [単語の登録] を選択して、単語登録ツールを開きます。
- 方法 (2)
単語登録ツールに割り当てられているショートカット キーが押されたことを WPF アプリケーション側で検出して、一旦キャンセルします。
そして、WPF アプリケーションから InputMethod.ShowRegisterWorkUI() を呼び出して、独自に単語登録ツールを開きます。
このとき、InputMethod.ShowRegisterWorkUI() の第一引数には単語登録ツールに渡したい任意のテキストを指定することになるため、選択しておいたテキストをアプリケーションが取得して渡すことで、目的の動作を実現できます。