在 .NET 中创建进程时,可以传入 ProcessStartInfo
类的一个新实例。在此类型中,有一个 UseShellExecute
属性。
本文介绍 UseShellExecute
属性的作用,设为 true
和 false
时,分别有哪些进程启动行为上的差异。
本质差异
Process.Start
本质上是启动一个新的子进程,不过这个属性的不同,使得启动进程的时候会调用不同的 Windows 的函数。
UseShellExecute = true
- 调用的是 ShellExecute
UseShellExecute = false
- 调用的是 CreateProcess
当然,如果你知道这两个函数的区别,那你自然也就了解此属性设置为 true
和 false
的区别了。
效果差异
ShellExecute</