私は英語と中国語を入力し、Windows 10 に組み込まれている入力方法を使用しますPinyin
。今これを入力しているとき、通知領域に現在の入力方法を示す 2 つのアイコンが表示されます。
Wi-Fi アイコンの横にあるアイコンは、英語で入力していることを示しています。その右側のアイコンは、Pinyin
入力方法を使用していることを示しています。
特定のウィンドウがアクティブな場合 (これらのウィンドウが入力を許可していない場合だと思います)、これらの 2 つのアイコンは通知領域に表示されません。通知領域で何か (例: Wi-Fi アイコン) をクリックしようとすると、これらの 2 つのアイコンが突然表示され、クリックしたいアイコンが左に押し出されます。その結果、クリックしても効果がなく、カーソルをそれに応じて左に移動してもう一度クリックする必要があります。
今のところ、私が見つけられる唯一の例は、 を使用して RDP セッションで作業する場合ですmremoteng
。しかし、私は RDP セッションで頻繁に作業するため、これはかなり煩わしいと感じています。
だから、これを修正できるかどうか知りたいのです。
こちらはビデオ今録音しました。
申し訳ありませんが、私の質問は十分に明確に伝わったと思っていましたが、そうではなかったようです。それで、ここに回答があります。
- なぜ
input indicator
特定の状況で完全に消えてしまうのでしょうか?私の場合、RDPセッション中にmremoteng
- また、通知領域内の任意のアイコンをクリックしようとすると、なぜ突然それが表示され、他のすべてのアイコンの位置が変わるのでしょうか?
答え1
入力インジケーターが表示されるのは、メモ帳の外側をクリックすることで、入力方法が簡単な英語から複雑な英語に変更されたためです。
通知領域のアイコンの順序は、アイコンを新しい位置にドラッグして放すことで変更できます。ただし、これらのインジケーターは言語バーが通常配置される場所と同じ場所に配置されているため、この方法は機能しない可能性があります。
2つの可能性があると思います:
- ご指摘のとおり、これらのインジケーターを言語バーに置き換えます。言語バーの配置は固定です。
- 言語バーをフローティングに設定すると、これらのインジケーターに対しても同じことが起こる可能性があります (または起こらない可能性があります) (適切な環境がないためテストできません)。
答え2
確かに、これは迷惑な RDP クライアント機能です。Windows XP でも同じです。残念ながら、これを無効にする設定は見つかりませんでしたが、それでも私のセットアップ (XP と Windows 10 の両方) では無効にできました。
TS クライアントは ITfLangBarMgr インターフェイス インスタンスを取得し、フォーカスを受け取ると、入力ロケール インジケーターを非表示にする ITfLangBarMgr.ShowFloating メソッドを呼び出します。その後、フォーカスを失うと、フォーカスを復元します。
「機能」を無効にする 1 つの方法は、ウィンドウに送信される WM_SETFOCUS メッセージをフィルタリングすることです。これはやや複雑です。
私が行ったのは、mstscax.dll にパッチを適用することです。16 進エディターを使用して、ITfLangBarMgr インターフェイス GUID (87955690-e627-11d2-8ddb-00105a2799b5) を検索しました。(16 進) 90 56 95 87 を検索しました。次に、1 ビットを変更して、90 を 91 に変更しました。この結果、TS クライアントは言語バー マネージャー インターフェイスのインスタンスを開始できなくなり、ShowFloating メソッドを呼び出さなくなります。