/// <summary> /// Creates a new process on the specified desktop. /// </summary> /// <param name="path">Path to application.</param> /// <param name="desktop">Desktop name.</param> /// <returns>A Process object for the newly created process, otherwise, null.</returns> public static Process CreateProcess(string path, string desktop) { if (!SEBDesktopController.Exists(desktop)) { return(null); } // create the process. SEBDesktopController d = SEBDesktopController.OpenDesktop(desktop); return(d.CreateProcess(path)); }
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)); }