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などでは、リソース不足に陥りやすい。やけにマシンの動きが悪いとおもったら、多数のプログラムが起動されていたなんてことにもなる。せめてタスクマネージャー程度は起動して、メモリ残量程度は監視しておきたいところだ。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ