static DesktopManager() { var shell = (IServiceProvider10)Activator.CreateInstance(Type.GetTypeFromCLSID(Guids.CLSID_ImmersiveShell)); VirtualDesktopManagerInternal = (IVirtualDesktopManagerInternal)shell.QueryService(Guids.CLSID_VirtualDesktopManagerInternal, typeof(IVirtualDesktopManagerInternal).GUID); VirtualDesktopManager = (IVirtualDesktopManager)Activator.CreateInstance(Type.GetTypeFromCLSID(Guids.CLSID_VirtualDesktopManager)); ApplicationViewCollection = (IApplicationViewCollection)shell.QueryService(typeof(IApplicationViewCollection).GUID, typeof(IApplicationViewCollection).GUID); VirtualDesktopPinnedApps = (IVirtualDesktopPinnedApps)shell.QueryService(Guids.CLSID_VirtualDesktopPinnedApps, typeof(IVirtualDesktopPinnedApps).GUID); }
internal static void Initialize() { if (_listenerWindow == null) { _listenerWindow = new ExplorerRestartListenerWindow(() => Initialize()); _listenerWindow.Show(); } VirtualDesktopManager = GetVirtualDesktopManager(); VirtualDesktopManagerInternal = VirtualDesktopManagerInternal.GetInstance(); VirtualDesktopNotificationService = GetVirtualDesktopNotificationService(); VirtualDesktopPinnedApps = GetVirtualDesktopPinnedApps(); ApplicationViewCollection = GetApplicationViewCollection(); _virtualDesktops.Clear(); _listener = VirtualDesktop.RegisterListener(); }