ProcessStartInfo.UseShellExecute将如何影响我的运行进程?
我是否需要UAC的特殊权限才能使用UseShellExecute?
它将在不同的用户上运行吗?
会给我新的权限吗?
最佳答案
Windows具有两个独特的api函数来启动进程。底层是CreateProcess(),它直接映射到 native api函数。还有ShellExecuteEx(),该功能由 shell 程序(Explorer)实现。它具有更高的抽象级别。
它们是非常不同的功能,您可以在ProcessStartInfo的文档中看到这些内容。 CreateProcess()只能启动可执行文件,但是它对控制控制台模式程序具有很好的支持,包括重定向I/O和控制控制台窗口外观的功能。 ShellExecuteEx()充分利用了 shell 程序添加的功能,文件关联是最重要的功能,因此您可以启动为特定文件扩展名注册的可执行文件。
两种api函数均具有影响流程执行方式的选项。您将看到ProcessStartInfo类的属性与CreateProcess支持的Process Creation Flags以及ShellExecuteEx()使用的SHELLEXECUTEINFO structure中的字段之间密切相关。但是这些功能并没有重叠,所以这就是为什么您需要修改UseShellExecute的原因。
关于c# - ProcessStartInfo.UseShellExecute有什么大不了的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12603377/