RemoteApp利用時のActiveWindowの動作に関して

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは、Windows サポート チームの馬場です。

AVD および RDS の環境にて RemoteApp を構成いただくことができますが、
その際の アクティブ ウィンドウ (Active Window) の決定動作に関してご紹介したいと思います。

アクティブ ウィンドウ (Active Window) とは

記事作成時点において、一般に広く提供されているアプリケーションの中には、複数の画面を同時に表示しながらも
利用者が操作対象のウィンドウを明示的に指定できるマルチ ウィンドウ形式に対応しているものが見受けられます。

本ブログ内においては、マルチ ウィンドウ形式を含むアプリケーション内で、操作中もしくは
選択中のウィンドウのことをアクティブ ウィンドウ (Active Window) と呼称いたします。

一般的に、アクティブ ウィンドウは画面の一番手前に表示される動作となり、
どのウィンドウがアクティブであるかが容易に見分けられるよう、ウィンドウ上部の表示領域の色が
他とは違っていたり、ウィンドウの影の濃さなどに変化をつけてアクティブ状態を表現しております。

アクティブなウィンドウ表示例

非アクティブなウィンドウ表示例

Windows OS においては、画面上に表示されている非アクティブなウィンドウをマウス操作によってクリックしたり
タスクバー上のアイコンを選択する、もしくはそれに順ずる操作を行うことで
アクティブ ウィンドウを切り替えることが可能となっております。

Windows Server 2019 と Windows Server 2022 において確認されている差異

上記のアクティブ ウィンドウの動作に関して、Window Server 2019 および Windows Server 2022 において
RemoteAppにより特定のアプリケーションを公開した場合に、アプリ実装等によっては
クライアントで実行した場合と比べて、アクティブになるウィンドウが異なる状況を確認しております。

あくまで一例ではございますが、以下のようなシナリオが挙げられます。

  1. 特定のアプリケーションをRemoteAppにて公開する
  2. RemoteAppにて起動した、上記のアプリケーション上で複数のウィンドウを開く
  3. アクティブ ウィンドウを「×」ボタンを押下し閉じる
  4. 上記の操作を行った際、Windows Server 2019 においては、非アクティブであった同一アプリケーション上のウィンドウが
    自動でアクティブになる動作となっておりましたが、Windows Server 2022 では、非アクティブであったウィンドウは、
    非アクティブのままとなり、自動ではアクティブ ウィンドウが切り替わらない状態となることがあります。

上記の OS による動作差分に関して、実装上の制限であるかに関しては現在弊社内にて調査を行っております。

回避策

上記事象に関しましては、非アクティブとなっているウィンドウをクリックしていただくことで回避が可能でございます。

また、RemoteAppではアプリケーションがオンプレ上で動作する際とは異なる Shell が利用されるため
アプリ側の実装が上記の差異を意識した実装となっていない場合には
上記に限らずRemoteAppでの公開時に意図しない動作となる可能性がございます。

注意事項

基本的なアクティブ ウィンドウの決定動作は、あくまで OS 内部の動作に準拠するものとなります。
今後も OS 側の動作や実装が変わることで、アクティブ ウィンドウの動作に関しては予告なく変更される可能性がございます。

現在社内にて調査中の課題に関しましては、調査結果がまとまり次第、本ブログも更新させていただく予定でございます。
記事内の記載は、ブログ公開時点での情報となります。