public Process CreateProcess(string path)
 {
     this.CheckDisposed();
     if (!this.IsOpen)
     {
         return((Process)null);
     }
     SEBDesktopController.STARTUPINFO lpStartupInfo = new SEBDesktopController.STARTUPINFO();
     lpStartupInfo.cb        = Marshal.SizeOf((object)lpStartupInfo);
     lpStartupInfo.lpDesktop = this.m_desktopName;
     SEBDesktopController.PROCESS_INFORMATION lpProcessInformation = new SEBDesktopController.PROCESS_INFORMATION();
     if (!SEBDesktopController.CreateProcess((string)null, path, IntPtr.Zero, IntPtr.Zero, true, 32, IntPtr.Zero, (string)null, ref lpStartupInfo, ref lpProcessInformation))
     {
         return((Process)null);
     }
     return(Process.GetProcessById(lpProcessInformation.dwProcessId));
 }
 private static extern bool CreateProcess(string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, ref SEBDesktopController.STARTUPINFO lpStartupInfo, ref SEBDesktopController.PROCESS_INFORMATION lpProcessInformation);