日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年5月3日土曜日

HydraVision:仮想デスクトップの落とし穴-ソフトウェア起動からウィンドウが表示されるまでに仮想デスクトップ間を移動すると危険

HydraVision を使っていて、初期に起こった現象です。

以下の操作を行った結果、立ち上げたはずのウィンドウがどこのデスクトップからも見えなくなりました。

  1. Windows を立ち上げてすぐに Windows Live Mail を起動する
  2. Windows Live Mail のスプラッシュ画面が出ている状態で、他のデスクトップに切り替える

以上で操作は終わりです。
そのあとの動作の流れを以下に説明します。

  1. 他のデスクトップに切り替わった状態で Windows Live Mail のメイン画面が立ち上がった
  2. 一瞬、Windows Live Mail のメイン画面が見えたかと思った直後、Windows Live Mail のメイン画面が非表示になる。
  3. 全てのデスクトップを見て回ったが、Windows Live Mail のメイン画面がどこにも存在していない状態になっていた。
  4. 強制的にウィンドウを特定のデスクトップに表示させる機能を使用しても、Windows Live Mail のメイン画面は表示されなかった。
  5. タスクマネージャでWindows Live Mail のプロセスを調べると、確かに起動して実行状態であった。

結局、Windows Live Mail のメイン画面を表示させることはできなかったので、いったん Windows をログアウトし、再度ログインして Windows Live Mail を実行したところ、正常に表示されました。

従って、これらの現象を総括すると、ソフトウェア起動からウィンドウが表示されるまでに仮想デスクトップ間を移動するとウィンドウがどこからも見えなくなるという危険性があるのかもしれません。


補足

実際に確認はしていないので断言はできませんが、これは仮想デスクトップ機能が OS によって実現されている機能ではなく、アプリケーションレベルで実現されている機能だから発生した現象だと考えています。


Windows はウィンドウを作成すると、すべて一つのデスクトップ(現在ログインしているユーザの)で管理されます。
OS レベルでウィンドウを複数のデスクトップに割り振る機能はありません。

あくまで、アプリケーション(仮想デスクトップソフトウェア)が疑似的に複数のデスクトップが仮想的に存在しているように見せているだけなので、仮想デスクトップソフトウェアが管理しているデスクトップとウィンドウの対応付けがおかしくなると、今回のような現象が発生する可能性があります。

仮想デスクトップソフトウェアが管理しているデスクトップとウィンドウの対応付けがおかしくなる原因として、ウィンドウの表示・非表示がユーザの操作とは非同期で行われたケースが考えられます。


仮想デスクトップソフトウェアはソフトウェアのウィンドウが起動したデスクトップを、そのソフトウェアのウィンドウ情報(おそらくウィンドウハンドル)と対応付けて管理しているはずです。

しかしながら、Windows Live Mail のように、スプラッシュ画面(ソフトウェアの名称とバージョン情報、起動準備中といった情報を表示するソフトウェアが起動される前に表示される小さなウィンドウ)が表示された後、メインのウィンドウが立ち上がる場合には、デスクトップとスプラッシュ画面の対応付けは適切に行われたとしても、その後のメインのウィンドウとデスクトップとの対応付けが適切に行われない可能性があります。


特に今回のケースである、仮想デスクトップの切り替えといった操作を行った時には、仮想デスクトップソフトウェアは保持しているデスクトップとウィンドウとの関連付け情報に基づいて、ウィンドウの表示・非表示を実行していると思います。

その処理中に、想定外のウィンドウの表示・非表示が発生すると、処理の隙間にそのウィンドウがはまってしまうことが考えられます。
そうなると、今回のケースのように、どこのデスクトップにも関連付けられずに、非表示になった状態のまま見えなくなるという現象が発生してもおかしくはありません。


以上は推測で述べた内容です。

しかしながら、仮想デスクトップソフトウェアが疑似的に仮想デスクトップを実現している以上、仮想デスクトップソフトウェアがどのような処理をして仮想デスクトップを実現しているのか推測し、仮想デスクトップソフトウェアにとって都合の悪い操作を行わないように気を付ける必要があります。

仮想デスクトップについての記事一覧





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...