xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Ticket #1442: 1442_simple_example.cs

File 1442_simple_example.cs, 1.2 KB (added by Tijs van der Zwaan, 6 months ago)
Line 
1        private IntPtr oldDesktop = IntPtr.Zero;
2        private IntPtr newDesktop = IntPtr.Zero;
3               
4                [...]
5                oldDesktop = Desktop.GetThreadDesktop(Desktop.GetCurrentThreadId());
6                newDesktop = Desktop.CreateDesktop("XpraDesktop", null, IntPtr.Zero, 0, Desktop.MAXIMUM_ALLOWED, IntPtr.Zero);
7               
8                Desktop.SetThreadDesktop(newDesktop);
9                Desktop.SwitchDesktop(newDesktop);
10               
11                string XpraCommand = "dist\\win32\\xpra.exe";
12                string XpraCommand = "attach tcp:127.0.0.1:" + port.ToString();
13               
14        Desktop.STARTUPINFO si = new Desktop.STARTUPINFO();
15        si.cb = Marshal.SizeOf(si);
16        si.lpDesktop = "XpraDesktop";
17        Desktop.PROCESS_INFORMATION pi = new Desktop.PROCESS_INFORMATION();
18        bool result = Desktop.CreateProcess(null, String.Format("{0} {1}", XpraPath, XpraCommand), IntPtr.Zero, IntPtr.Zero, true, 0x00000020, IntPtr.Zero, null, ref si, ref pi);
19        xpraProcess = Process.GetProcessById(pi.dwProcessId);
20               
21                while (!xpraProcess.HasExited)
22                {
23                Task.Delay(100).Wait();
24                }
25                Desktop.SetThreadDesktop(oldDesktop);
26                Desktop.SwitchDesktop(oldDesktop);
27                Desktop.CloseDesktop(newDesktop);
28               
29                [..]