UlteriusServer.Api.Win32.Desktop.Close C# (CSharp) Method

Close() public method

Closes the handle to a desktop.
public Close ( ) : bool
return bool
        public bool Close()
        {
            // make sure object isnt disposed.
            CheckDisposed();

            // check there is a desktop open.
            if (DesktopHandle != IntPtr.Zero)
            {
                // close the desktop.
                var result = CloseDesktop(DesktopHandle);

                if (result)
                {
                    DesktopHandle = IntPtr.Zero;

                    DesktopName = string.Empty;
                }

                return result;
            }

            // no desktop was open, so desktop is closed.
            return true;
        }

Usage Example

Example #1
0
 private static void WatchDesktop()
 {
     while (true)
     {
         try
         {
             using (var inputDesktop = new Desktop())
             {
                 inputDesktop.OpenInput();
                 if (!inputDesktop.DesktopName.Equals(_lastDesktop))
                 {
                     if (inputDesktop.Show() && Desktop.SetCurrent(inputDesktop))
                     {
                         Console.WriteLine($"Desktop switched from {_lastDesktop} to {inputDesktop.DesktopName} on thread {Desktop.GetCurrentThreadId()}");
                         _lastDesktop      = inputDesktop.DesktopName;
                         _lastDesktopInput = inputDesktop;
                         CurrentDesktop    = inputDesktop;
                     }
                     else
                     {
                         var errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).Message;
                         Console.WriteLine(errorMessage);
                         _lastDesktopInput?.Close();
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message, ex);
         }
         Thread.Sleep(1000);
     }
 }