Exemple #1
0
        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();
        }