2020年02月20日

Windows10を1909アップデートしたら、エクスプローラーの検索窓のIME状態の挙動が変わった?

一昨日、フィードバックから、Windows10をver.1909にアップデートしたら、エクスプローラーの検索窓のIME状態を変えられなくなった、というご意見をいただきました。

NumLockLockでIME状態を自動でONにする設定をしていたのだが、どうも、そうならなくなったとのこと。(もちろん手動では変えられる)

実際、手元の環境で試してみると、再現できました。
最近のWindowsでの挙動の変化ということらしいですが、詳細は不明です。

202002_NLLIME1.png

NumLockLockを常駐させ、IMEが常にONになるように設定した場合、普通のウィンドウ上(管理者権限で動作しているウィンドウを除く)であれば、IMEを常にONにする機能が働きますが、上記の画像のように、エクスプローラ右上の検索窓にカーソルを置いた場合に限り、この機能が働きません。

これは何が起きているのか?

実際、プログラム中で何が起きているのかと思い、デバッグ用のコードを仕込んでみました。

202002_NLLIME2.png

hActiveWindowは、GetForegroundWindow() APIで取得したウィンドウハンドルです。
これに対し、SendMessageでWM_IME_CONTROLで0x05(IMC_GETOPENSTATUS)を送ると、IME状態がONなのかOFFなのかを取得することができます。

上記の画面のような状態で、WM_IME_CONTROLの5(IMC_GETOPENSTATUS)が何を返しているのか調べました。
デバッグ用の仕込みを入れることで、IMEがONであると認識していれば、Windowsの標準の警告音が鳴り続けます。

で、実際動かしてみたら、Windowsの標準の警告音が鳴り続けました。
(画面上、IME状態はOFFであるにも関わらず!)

というわけで、画面上のステータスと、Windows APIが返すステータスが不一致であるという、よくわからない現象に遭遇していることが分かりました。
ユーザーの情報によれば、この現象はWindows10を1909にアップデートしたら起きるようになったとのことなので、他のバージョンでは起きないものと思われます。

さて、何が起きているのか? 例えば、次のようなことが考えられます。

  • エクスプローラーの検索窓だけ、管理者権限で動いているため、外部のウィンドウメッセージを受け付けてくれない。
  • カーソルが置かれている窓と、GetForegroundWindow()が返すウィンドウハンドルが、実は異なっている。例えば、編集ボックス自体と、プルダウン表示している最近入力した選択肢のウィンドウが別で管理されており、画面上のIME状態表示とWM_IME_CONTROLが返す値が異なっている、あるいは、見た目カーソルの置かれているアクティブな入力窓とGetForegroundWindow()が返すウィンドウハンドルがそれぞれ別のものを指した状態になってしまっている。

フィードバックでは、ユーザーからは状況の改善を依頼されているのですが、悪化したのはOSの側(プログラムに画面状態とは異なるウソ情報を返している?)な感じがするため、ちょっと一介の日曜プログラマの手には負えない感じがしています。OSの次回アップデートで状況が改善するのを祈るのみな気がします。



posted by ayacy at 00:00 | Comment(4) | TrackBack(0) | プログラミング
この記事へのコメント
どうもお世話になってます
的外れかもですが
最近同じような記事を見たような気がして
軽く探しました
もしかして以下の影響ですかね
https://www.softantenna.com/wp/windows/windows-10-version-1909-explorer-buggy/
Posted by kiyohiro at 2020年02月20日 11:27
なるほど、有力情報、ありがとうございます。
今後のWindows 10の更新による改善でどうにかなりそうな感じがしますね。
Posted by Ayacy at 2020年02月20日 11:33
フィードバックを送った者です。
細かく検証していただき、感謝しております。
マイクロソフト側の問題でしたのにお手数おかけして申し訳ありませんでした。
ver.1903に戻したところ、正常に動くようになりましたので、次回のアップデートで修正されるのを期待しつつ、様子を見たいと思います。
このたびは本当にありがとうございました。
Posted by ごんたママ at 2020年02月29日 23:55
ご確認ありがとうございます。
以前までのWindowsならば、時間がたつにしたがってどんどん安定していったはずなのですが、今回のWindows 10は、Windows 10の中で新機能が開発・公開されていっている感じなので、不安定になったり安定したりを繰り返している感じで、利用者としてはなんだか不安になることが多い感じですね。
Posted by Ayacy at 2020年03月01日 09:02
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/187175732
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック