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);