[英]ProcessStartInfo.UseShellExecute = true and waiting for process exit
[英]What's the big deal with ProcessStartInfo.UseShellExecute?
ProcessStartInfo.UseShellExecute将如何影响我的运行进程?
我是否需要UAC对UseShellExecute的特殊权限?
它会在不同的用户上运行吗?
它会给我新的权限吗?
Windows有两个不同的api函数来启动进程。 低级的是CreateProcess(),它直接映射到本机api函数。 还有ShellExecuteEx(),这是一个由shell(Explorer)实现的函数。 它具有更高的抽象级别。
它们是非常不同的功能,您可以在ProcessStartInfo的文档中看到这些功能。 CreateProcess()只能启动可执行文件,但它有很好的支持来控制控制台模式程序,包括重定向I / O和控制控制台窗口外观的能力。 ShellExecuteEx()利用shell添加的功能,文件关联是最重要的,因此您可以启动为特定文件扩展名注册的可执行文件。
两个api函数都有选项来影响进程的执行方式。 您将看到ProcessStartInfo类的属性与CreateProcess支持的Process Creation Flags以及ShellExecuteEx()使用的SHELLEXECUTEINFO结构中的字段之间存在密切关联。 但这些功能不重叠,这就是为什么你需要修改UseShellExecute。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.