Wrapper for API to Virtual Desktop on Windows 10.
C#
Latest commit 4211ae6 Aug 8, 2016 @Grabacr07 committed on GitHub Merge pull request #12 from Grabacr07/propose/args_update
Update IApplicationView method args

README.md

VirtualDesktop

VirtualDesktop is C# wrapper for IVirtualDesktopManager on Windows 10.

Features

  • Switch, add, and remove a Virtual Desktop.
  • Move the window in the same process to any Virtual Desktop.
  • Move the window of another process to any Virtual Desktop (Support in version 2.0 or later).

Installation

Install NuGet package(s).

PM> Install-Package VirtualDesktop

How to use

Preparation:

<!-- Please create application manifest file and run without debugging. -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
        <!-- Windows 10 -->
        <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
    </application>
</compatibility>
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

// Need to install 'VirtualDesktop.WPF' package

// 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:

License

This library is under the MIT License.