public class GlobalHotkey : IMessageFilter
void GetId(out Guid guid); void GetName(out string name);
Button newBtn = new Button() Text = "+", Width = 60, Height = 60, BackColor = Color.Lime ; newBtn.Click += (s, e) => VirtualDesktopManager.CreateDesktop(); panel.Controls.Add(newBtn); desktop switcher
public static void SwitchToDesktop(Guid desktopId)
var manager = GetVirtualDesktopManagerInternal(); IObjectArray desktops; manager.GetDesktops(out desktops); uint count = desktops.GetCount(); for (uint i = 0; i < count; i++) desktops.GetAt(i, typeof(IVirtualDesktop).GUID, out IntPtr pDesktop); var desktop = (IVirtualDesktop)Marshal.GetTypedObjectForIUnknown(pDesktop, typeof(IVirtualDesktop)); desktop.GetId(out Guid id); if (id == desktopId) manager.SwitchDesktop(pDesktop); Marshal.Release(pDesktop); break; Marshal.Release(pDesktop); void GetName(out string name)
// Simulate Ctrl+Win+D InputSimulator.SendKeyDown(Keys.LWin); InputSimulator.SendKeyDown(Keys.Control); InputSimulator.SendKeyPress(Keys.D); InputSimulator.SendKeyUp(Keys.Control); InputSimulator.SendKeyUp(Keys.LWin);
Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); DesktopSwitcherForm form = new DesktopSwitcherForm(); form.Show(); new GlobalHotkey(() => form.Visible = !form.Visible); Application.Run(); Width = 60
uint GetCount(); void GetAt(uint index, ref Guid riid, out IntPtr obj);
PRODUCTS
SUPPORT
STAY IN TOUCH
© Copyright 2026 Cedrus Corporation, P.O. Box 6309, San Pedro, CA 90734 - USA
Phone: +1-310-548-9595. Send us an email
qwerasdf