WaitForExit等待的是什么?
System.Diagnostics.Process pro = System.Diagnostics.Process.Start("EXCEL.EXE");
pro.WaitForExit();
pro.Close();
System.Diagnostics.Process pro = System.Diagnostics.Process.Start("EXCEL.EXE");
pro.WaitForExit();
pro.Close();
Quote=引用 1 楼 的回复:]pro.EnableRaisingEvents = true;
[/Quote]
这样就是启动没有关联的外部程序啊
获取或设置在进程终止时是否应激发 Exited 事件。如果我要启动一个与程序本身完全没有关联的外部程序,该怎么启动?
就你这么
System.Diagnostics.Process pro = System.Diagnostics.Process.Start("EXCEL.EXE");
因为下面pro.WaitForExit()起作用了,进入了阻塞,直到复制动作完毕。
System.Diagnostics.Process pro = System.Diagnostics.Process.Start("xcopy.exe", "111 222\\ /S /E"); //把文件夹111中的内容,完整复制到文件夹222中。
pro.WaitForExit();
通过指定文档或应用程序文件的名称来启动进程资源,并将资源与新的 Process 组件关联是指这个process对象与新启动的资源的关联,否则怎么能获取MainModule、MainWindowHandle这些其他进程的属性
就像鼠标双击exe一样,只有操作系统记录了Exe的信息一样吧。大概就是这样的意思。
不需要对外部EXE进行任何的控制。应该就是以无关联的方式打开外部EXE吧
你有没有觉得有点矛盾?
而一楼的例子,则需要设置?
这样的话,是不是可以证明,普通的process.start启动,应该是有关联的吧。
Process[] proc = Process.GetProcessesByName("devenv");
proc[0].WaitForExit();
这样可以等待 vs 关闭呢