ProcessStartInfo.UseShellExecute将如何影响我正在运行的进程?
我是否需要从UAC到UseShellExecute的特殊权限?
它会在不同的用户上运行吗?
它会给我新的权限吗?
发布于 2012-09-26 22:51:16
Windows有两个截然不同的api函数来启动进程。底层的是CreateProcess(),它直接映射到本机api函数。还有ShellExecuteEx(),这是一个由外壳(资源管理器)实现的函数。它具有更高的抽象级别。
它们是非常不同的功能,这是您在ProcessStartInfo的文档中看到的。CreateProcess()只能启动可执行文件,但它对控制控制台模式程序有很好的支持,包括重定向I/O和控制控制台窗口的外观。ShellExecuteEx()利用了shell添加的功能,文件关联是最重要的功能,因此您可以启动为特定文件扩展名注册的可执行文件。
这两个api函数都有影响进程执行方式的选项。您将看到ProcessStartInfo类的属性和CreateProcess支持的Process Creation Flags的属性与ShellExecuteEx()使用的SHELLEXECUTEINFO structure中的字段密切相关。但是这些特性并不重叠,所以这就是为什么你需要修补UseShellExecute的原因。
https://stackoverflow.com/questions/12603377
复制相似问题