コード例 #1
0
 // Set a process start flag.
 private void SetFlag(ProcessStartFlags flag, bool value)
 {
     if (value)
     {
         flags |= flag;
     }
     else
     {
         flags &= ~flag;
     }
 }
コード例 #2
0
	// Set a process start flag.
	private void SetFlag(ProcessStartFlags flag, bool value)
			{
				if(value)
				{
					flags |= flag;
				}
				else
				{
					flags &= ~flag;
				}
			}
コード例 #3
0
        public void Apply()
        {
            internal_entry.Text        = textBoxMenuText.Text;
            internal_entry.CommandText = textBoxCommandText.Text;

            ProcessStartFlags opts = ProcessStartFlags.None;

            if (checkBoxNoWindow.Checked)
            {
                opts = opts | ProcessStartFlags.NoWindow;
            }
            if (checkBoxUseShellexecute.Checked)
            {
                opts = opts | ProcessStartFlags.UseShellexecute;
            }
            internal_entry.Options = opts;
        }
コード例 #4
0
	// Get a process start flag.
	private bool GetFlag(ProcessStartFlags flag)
			{
				return ((flags & flag) != 0);
			}
コード例 #5
0
	public ProcessStartInfo(String fileName, String arguments)
			{
				this.fileName = fileName;
				this.arguments = arguments;
				this.flags = ProcessStartFlags.UseShellExecute;
			}
コード例 #6
0
 // Get a process start flag.
 private bool GetFlag(ProcessStartFlags flag)
 {
     return((flags & flag) != 0);
 }
コード例 #7
0
 public ProcessStartInfo(String fileName, String arguments)
 {
     this.fileName  = fileName;
     this.arguments = arguments;
     this.flags     = ProcessStartFlags.UseShellExecute;
 }
コード例 #8
0
ファイル: MagicHelpers.cs プロジェクト: ross-weir/WhiteMagic
        public static ProcessStartResult StartProcess(string FilePath, string Arguments = "", ProcessStartFlags StartFlags = ProcessStartFlags.None)
        {
            if (!File.Exists(FilePath))
            {
                throw new MagicException("No such file '{0}'", FilePath);
            }

            var pInfo = new PROCESS_INFORMATION();
            var sInfo = new STARTUPINFO();
            var pSec  = new SECURITY_ATTRIBUTES();
            var tSec  = new SECURITY_ATTRIBUTES();

            pSec.nLength = Marshal.SizeOf(pSec);
            tSec.nLength = Marshal.SizeOf(tSec);

            var flags = CreateProcessFlags.DETACHED_PROCESS;

            if (StartFlags.HasFlag(ProcessStartFlags.NoWindow))
            {
                flags |= CreateProcessFlags.CREATE_NO_WINDOW;
            }
            if (StartFlags.HasFlag(ProcessStartFlags.Suspended))
            {
                flags |= CreateProcessFlags.CREATE_SUSPENDED;
            }

            if (!Kernel32.CreateProcess(FilePath, Arguments,
                                        ref pSec, ref tSec, false, flags,
                                        IntPtr.Zero, null, ref sInfo, out pInfo))
            {
                throw new MagicException("Failed to start process");
            }

            return(new ProcessStartResult()
            {
                ProcessId = pInfo.dwProcessId,
                ProcessHandle = pInfo.hProcess,
                MainThreadId = pInfo.dwThreadId,
                MainThreadHandle = pInfo.hThread
            });
        }