Windows 10で正式に導入され、11で改良が進んだ「仮想デスクトップ」
ASCII.jp / 2023年5月7日 10時0分
「仮想デスクトップ」には長い歴史と面倒な事柄が
Windows 11には「仮想デスクトップ」と呼ばれる機能がある。Windows 10で標準搭載された機能を継承したものだ。この「仮想デスクトップ」には、長い歴史と面倒な事柄がある。
![](https://ascii.jp/img/2023/05/06/3532733/x/87b68abc1fdc4ea8.png)
そもそも、Windowsには「仮想デスクトップ」と呼ばれるものが2つある。1つは、Windows 11に搭載されている「仮想デスクトップ」で、デスクトップ画面を複数切り替えて利用する機能だ。歴史的には、この機能が「仮想デスクトップ」(Virtual Desktop)と呼ばれている。
もう1つの「仮想デスクトップ」は、Windowsの「VDI」(Virtual Desktop Infrastructure)で使われるものだ。簡単に言えば、他のマシンや仮想環境で実行したWindowsのデスクトップをローカルマシンに表示するとき、これを「仮想デスクトップ」と表現している。Windows以外では、「デスクトップ仮想化」(Desktop Virtualization)と表記することが多い。
しかし、勝てば官軍、質よりも量、Microsoftが「デスクトップ仮想化」を「仮想デスクトップ」と表記してしまえば、これが多く場合で通ってしまう。ただ、VDIは、一般消費者ではなく、主にシステム管理者やIT技術者といった範囲で使うことが多いので、人間同士が話をする場合にはさほど混乱はなかった。VDIを知っている人は、仮想デスクトップに2つの意味があることを知っていることが多かったためだ。
ところが、インターネット検索はこうした意味が複数ある用語の区別をきちんとしてくれるわけではない。「Windowsの仮想デスクトップ」と検索すれば、検索結果には両方の意味が含まれる。かくして、「仮想デスクトップ」がよくわからないものになってしまったわけだ。
仮想デスクトップ自体は、Windowsよりも歴史が古い存在だ。最初の仮想デスクトップは、有名なXeroxのPARC(Palo Alto Research Center)で開発され、1986年に「Rooms」というソフトウェアの論文として発表された。実際にはこれ以前に開発されていたと考えられるが、いろいろと調べてみたが明確な文書が見つからなかった。
商業システムでは、1990年のSWM(Solbourne Window Manager、X Windows System用のウィンドウマネージャーの1つ)に「Virtual Desktop」として搭載された。そもそも「Virtual Desktop」という名称は、ここから始まり、Solbourne Computer社の商標だった。Solbourne Computerは、同社が設計し、松下電器が製造したSPARC互換チップKAP(MN10501)を採用したことでも知られる。
XeroxのRoomsは、のちにWindows 3.0(1990年)のアプリケーションとして発売された。この時代、仮想デスクトップは、サードパーティのアプリケーションとして作られていて、Microsoftからは提供されていなかった。
曲がりなりにもMicrosoftから提供された最初の仮想デスクトップは、Windows XP用のPowerToys(2009年)に含まれていた「Virtual Desktop Manager」である。その後継のWindows Vistaは開発が遅れたためPowerToysはリリースされなかった。しかし、2006年にMicrosoftに買収されたsysinternalsは、Desktopsという仮想デスクトップソフトウェアを開発していた。これにより、Windows VistaからWindows 8.xまで、Windows用の仮想デスクトップソフトウェアが提供されることになった。
Windows 10で正式採用、11で改良
仮想デスクトップが正式なWindowsの機能として搭載されたのは、Windows 10のことだ。Windows 10では、最初のTH1(Windows 10 ビルド10240、バージョン1507)から仮想デスクトップが導入されたが、途中、仮想デスクトップに名前を付ける機能が追加された程度だった。
しかし、Windows 11になるときに改良が進み、背景の個別指定やタスクビューアイコンでのマウスホバーによるサムネイル表示、ドラッグ&ドロップでの並び替えなどの機能が追加された。Windowsの標準機能になり、ようやくデスクトップの一員となった感じだ。
Windowsの仮想デスクトップは、ウィンドウの表示状態を制御して実現されている。ウィンドウあるいはアプリケーション(プロセス)と、仮想デスクトップを紐付け、選択されている仮想デスクトップに紐付けられたウィンドウのみを表示し、それ以外のウィンドウは隠すというやりかたで実現されている。
このため、別の仮想デスクトップに表示されているアプリケーション自体はずっと起動したままだ。デスクトップアプリでは、プロセス状態に変化はないが、UWPではフォアグラウンド状態でない(バックグラウンド状態の)アプリはスリープ状態となる(必要に応じてバックグラウンドタスクを実行することは可能)。
このときUIのレンダリングやアニメーションを止め、不要なリソースを解放することが推奨されている。つまり仮想デスクトップは、UWPアプリケーションとは相性がよい。これに対して、デスクトップアプリは、非フォアクラウンド状態では、リソースを解放するわけでもなく、場合によってはプロセスが動作したままになる。
Windows 11では、作成した仮想デスクトップは、再起動しても維持される。「設定」→「アカウント」→「サインインオプション」で「再起動可能なアプリを自動的に保存し、再度サインインしたときに再起動する」がオンになっていると、再起動したときアプリ(再起動可能なもの)が起動されて仮想デスクトップに配置される。
逆に言えば、このオプションが有効になっていなければ、再起動前に仮想デスクトップ内で動作していたアプリが元の仮想デスクトップに表示されることはない。仮想デスクトップの利用頻度が高いなら上記の設定は便利だが、たまにしか使わない場合、別の仮想デスクトップでアプリが起動したままになっていて、気づかない可能性もある。
APIも用意されてはいる
Windows 10/11には、仮想デスクトップ用のAPIがあるが、可能なのは、
・アプリのウィンドウが存在する仮想デスクトップのID(GUID) ・現在の仮想デスクトップにウィンドウがあるかどうか(TrueかFalse) ・指定した仮想デスクトップへウィンドウを移動させる機能
の3つだけ。仮想デスクトップIDは、バージョン4のGUIDが使われており、仮想デスクトップが作られるときに乱数を用いて生成されていると考えられる。
APIは、自分のウィンドウがある仮想デスクトップIDしか得ることができないため、ウィンドウを移動させるAPIは、自分のウィンドウが存在する仮想デスクトップしか行き先を指定できない。これは、ユーザーの操作で別の仮想デスクトップにウィンドウが移動させられたときに、残りのウィンドウを移動させる、2重起動されたときに前に起動したアプリのウィンドウを現在の仮想デスクトップ移動させるぐらいしか使い道がない。
仮想デスクトップでは、アプリやウィンドウをすべての仮想デスクトップに表示させる設定をユーザーができる。テストプログラムを作って確認してみたところ、アプリに対してこの指定がされると、アプリは存在する仮想デスクトップとは異なるIDを得る。つまり、この設定をして、仮想デスクトップを切り替えていっても、アプリケーションは、固定した別のID(強いて言えばすべての仮想デスクトップに対応するID)しか得られない。
仮想デスクトップに関する情報は、レジストリに記録がある(Windows 11 Ver.22H2で確認)。レジストリキー「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops」以下に仮想デスクトップの状態が記録されている。Desktopsキー以下に仮想デスクトップIDと同じGUIDでキーが作られており、ここを見れば、仮想デスクトップに付けた名前(ただし、ユーザーが指定したときのみ)や背景画像を知ることが可能だ。
仮想デスクトップは外出中のノートPCなど、マルチディスプレイが利用できない環境で複数の作業を並行して進める場合に便利なことがある。ただ、常に仮想デスクトップを利用していることを意識していないと、すでにアプリを起動しているのにもかかわらず、二重起動することがある。
またWin32アプリは、起動したまま資源を専有した状態になるため、メモリの少ないノートPCなどでは、リソース不足に陥りやすい。やけにマシンの動きが悪いとおもったら、多数のプログラムが起動されていたなんてことにもなる。せめてタスクマネージャー程度は起動して、メモリ残量程度は監視しておきたいところだ。
この記事に関連するニュース
-
スタートメニューにスマホ情報? PowerToys Runのススメ - 阿久津良和のWindows Weekly Report
マイナビニュース / 2024年7月7日 16時0分
-
Windows 11向け更新プログラム「KB5039302」プレビュー版公開
マイナビニュース / 2024年7月1日 10時13分
-
「dynabook」ブランドが登場から35周年/GmailやGoogle ドライブなどのサイドパネルに「Gemini 1.5 Pro」を統合
ITmedia PC USER / 2024年6月30日 6時5分
-
Windowsが今更(?)開発者に優しくなろうとしている!? 「Dev Home」は開発者にとって使い物になる?
ASCII.jp / 2024年6月23日 10時0分
-
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲?
ASCII.jp / 2024年6月16日 10時0分
ランキング
-
13月末にコンビ解散したお笑い芸人、「また美人になった?」「見るたびにキレイになってく」と反響
ねとらぼ / 2024年7月5日 18時37分
-
2「静岡40度」がトレンド入り「まだ梅雨明け前だってのに…」「そんな暑くなるところだっけ?」「酷暑日って初めて聞いた」
iza(イザ!) / 2024年7月7日 16時6分
-
3Ryzen 5 8600Gを標準搭載する1.92LのBTO PC、超小型PCの決定版になりそう
ASCII.jp / 2024年7月7日 10時0分
-
4格安SIMでIPv6が使えると何かいいことがあるのか?
ASCII.jp / 2024年7月7日 12時0分
-
5「どう見てもセガのアレ」 コンビニうどんの容器トレーが「圧倒的既視感」「コントローラーの抜け殻」と話題
ねとらぼ / 2024年7月7日 17時0分
記事ミッション中・・・
記事にリアクションする
![](/pc/img/mission/mission_close_icon.png)
記事ミッション中・・・
記事にリアクションする
![](/pc/img/mission/point-loading.png)
エラーが発生しました
ページを再読み込みして
ください
![](/pc/img/mission/mission_close_icon.png)