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

OpenInput() public method

Opens the current input desktop.
public OpenInput ( ) : bool
return bool
        public bool OpenInput()
        {
            // make sure object isnt disposed.
            CheckDisposed();

            // close the open desktop.
            if (DesktopHandle != IntPtr.Zero)
            {
                // attempt to close the desktop.
                if (!Close()) return false;
            }

            // open the desktop.
            DesktopHandle = OpenInputDesktop(0, true, AccessRights);

            // something went wrong.
            if (DesktopHandle == IntPtr.Zero) return false;

            // get the desktop name.
            DesktopName = GetDesktopName(DesktopHandle);

            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);
     }
 }
All Usage Examples Of UlteriusServer.Api.Win32.Desktop::OpenInput