标签:csdn ocs 访问 创建 rap microsoft follow wchar 联系
原文:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?
在 .NET 中创建进程时,可以传入 ProcessStartInfo
类的一个新实例。在此类型中,有一个 UseShellExecute
属性。
本文介绍 UseShellExecute
属性的作用,设为 true
和 false
时,分别有哪些进程启动行为上的差异。
Process.Start
本质上是启动一个新的子进程,不过这个属性的不同,使得启动进程的时候会调用不同的 Windows 的函数。
UseShellExecute = true
UseShellExecute = false
当然,如果你知道这两个函数的区别,那你自然也就了解此属性设置为 true
和 false
的区别了。
ShellExecute
的用途是打开程序或者文件或者其他任何能够打开的东西(如网址)。
也就是说,你可以在 Process.Start
的时候传入这些:
PATH
环境变量中的各种程序不过,此方法有一些值得注意的地方:
而 CreateProcess
则会精确查找路径来执行,不支持各种非可执行程序的打开。但是:
UseShellExecute
的默认值是 true
。
如果有以下需求,那么建议设置此值为 false
:
如果你有以下需求,那么建议设置此值为 true
或者保持默认:
参考资料
我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。
如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?
标签:csdn ocs 访问 创建 rap microsoft follow wchar 联系
原文地址:https://www.cnblogs.com/lonelyxmas/p/12051998.html