VirtualDesktop is C# wrapper for IVirtualDesktopManager on Windows 10.
- Switch, add, and remove a Virtual Desktop.
- Move the window in the same process to any Virtual Desktop.
- [CANNOT] Move the window of another process to any Virtual Desktop.
Preparation:
<!-- create "app.manifest" file -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
// reference VirtualDesktop.dll
using WindowsDesktop;
Get instance of VirtualDesktop:
// Get all Virtual Desktops
var desktops = VirtualDesktop.GetDesktops();
// Get Virtual Desktop for specific window
var desktop = VirtualDesktop.FromHwnd(hwnd);
// Get the left/right desktop
var left = desktop.GetLeft();
var right = desktop.GetRight();
Manage Virtual Desktops:
// Create new
var desktop = VirtualDesktop.Create();
// Remove
desktop.Remove();
// Switch
desktop.Switch();
for WPF window
// reference VirtualDesktop.WPF.dll
// Check whether a window is on the current desktop.
var isCurrent = window.IsCurrentVirtualDesktop();
// Get Virtual Desktop for WPF window
var desktop = window.GetCurrentDesktop();
// Move window to specific Virtual Desktop
window.MoveToDesktop(desktop);
See also:
- samples/VirtualDesktop.Showcase project
This library is under the MIT License.