Exemplo n.º 1
0
        private static unsafe void StartProcess(string[] args, NativeJob job)
        {
            using (var atts = new ProcThreadAttributeList(1))
                using (var shellProc = GetShellProcess()) {
                    IntPtr shellHandle = shellProc.Handle.DangerousGetHandle();

                    atts.AddAttribute <IntPtr>(ProcThreadAttribute.ParentProcess, &shellHandle);

                    using (NativeProcess natProcess = NativeProcess.CreateProcess(args[0], null, CreateProcessFlags.None, StartupInfoFlags.None, atts, null, out _)) {
                        job.AttachProcess(natProcess);
                    }
                }
        }