首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ProcessStartInfo.UseShellExecute有什么大不了的?

ProcessStartInfo.UseShellExecute有什么大不了的?
EN

Stack Overflow用户
提问于 2012-09-26 21:55:22
回答 1查看 5.5K关注 0票数 5

ProcessStartInfo.UseShellExecute将如何影响我正在运行的进程?

我是否需要从UAC到UseShellExecute的特殊权限?

它会在不同的用户上运行吗?

它会给我新的权限吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的原因。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12603377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档