/// <summary> /// Creates a new Desktop object with the same desktop open. /// </summary> /// <returns>Cloned desktop object.</returns> public object Clone() { // make sure object isnt disposed. var desktop = new Desktop(); // if a desktop is open, make the clone open it. if (IsOpen) desktop.Open(DesktopName); return desktop; }
/// <summary> /// Switches to the specified desktop. /// </summary> /// <param name="name">Name of desktop to switch input to.</param> /// <returns>True if desktops were successfully switched.</returns> public static bool Show(string name) { // attmempt to open desktop. bool result; using (var d = new Desktop()) { result = d.Open(name); // something went wrong. if (!result) return false; // attempt to switch desktops. result = d.Show(); } return result; }
/// <summary> /// Sets the desktop of the calling thread. /// NOTE: Function will fail if thread has hooks or windows in the current desktop. /// </summary> /// <param name="desktop">Desktop to put the thread in.</param> /// <returns>True if the threads desktop was successfully changed.</returns> public static bool SetCurrent(Desktop desktop) { // set threads desktop. if (!desktop.IsOpen) return false; return SetThreadDesktop(desktop.DesktopHandle); }
/// <summary> /// Opens the current input desktop. /// </summary> /// <returns>If successful, a Desktop object, otherwise, null.</returns> public static Desktop OpenInputDesktop() { // open the desktop. var desktop = new Desktop(); var result = desktop.OpenInput(); // somethng went wrong. if (!result) return null; return desktop; }
/// <summary> /// Opens a desktop. /// </summary> /// <param name="name">The name of the desktop to open.</param> /// <returns>If successful, a Desktop object, otherwise, null.</returns> public static Desktop OpenDesktop(string name) { // open the desktop. var desktop = new Desktop(); var result = desktop.Open(name); // somethng went wrong. if (!result) return null; return desktop; }
/// <summary> /// Gets the name of a given desktop. /// </summary> /// <param name="desktop">Desktop object whos name is to be found.</param> /// <returns>If successful, the desktop name, otherwise, null.</returns> public static string GetDesktopName(Desktop desktop) { // get name. if (desktop.IsOpen) return null; return GetDesktopName(desktop.DesktopHandle); }