/// <summary> /// Returns the virtual desktop of the specified identifier. /// </summary> public static VirtualDesktop FromId(Guid desktopId) { VirtualDesktopHelper.ThrowIfNotSupported(); IVirtualDesktop desktop; try { desktop = ComInternal.FindDesktop(desktopId); } catch (COMException ex) //when (ex.Match(HResult.TYPE_E_ELEMENTNOTFOUND)) { return(null); } var wrapper = wrappers.GetOrAdd(desktop.GetID(), _ => new VirtualDesktop(desktop)); return(wrapper); }
/// <summary> /// Returns the virtual desktop that the specified window is located. /// </summary> public static VirtualDesktop FromHwnd(IntPtr hwnd) { VirtualDesktopHelper.ThrowIfNotSupported(); if (hwnd == IntPtr.Zero) { return(null); } IVirtualDesktop desktop; try { var desktopId = ComManager.GetWindowDesktopId(hwnd); desktop = ComInternal.FindDesktop(desktopId); } catch (COMException ex) //when (ex.Match(HResult.REGDB_E_CLASSNOTREG, HResult.TYPE_E_ELEMENTNOTFOUND)) { return(null); } var wrapper = wrappers.GetOrAdd(desktop.GetID(), _ => new VirtualDesktop(desktop)); return(wrapper); }