C# 什么';ProcessStartInfo.UseShellExecute有什么大不了的?

C# 什么';ProcessStartInfo.UseShellExecute有什么大不了的?,c#,.net,windows,shell,process,C#,.net,Windows,Shell,Process,ProcessStartInfo.UseShellExecute将如何影响我正在运行的进程 我是否需要UAC的特殊权限才能使用ShellExecute 它会在不同的用户上运行吗 它会给我新的权限吗?Windows有两个不同的api函数来启动进程。底层是CreateProcess(),它直接映射到本机api函数。还有ShellExecuteEx(),一个由shell(资源管理器)实现的函数。它具有更高的抽象级别 它们是非常不同的功能,您可以在ProcessStartInfo的文档中看到这一点。Cr

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

我是否需要UAC的特殊权限才能使用ShellExecute

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


它会给我新的权限吗?

Windows有两个不同的api函数来启动进程。底层是CreateProcess(),它直接映射到本机api函数。还有ShellExecuteEx(),一个由shell(资源管理器)实现的函数。它具有更高的抽象级别

它们是非常不同的功能,您可以在ProcessStartInfo的文档中看到这一点。CreateProcess()只能启动可执行文件,但它对控制控制台模式程序有很好的支持,包括重定向I/O和控制控制台窗口外观的能力。ShellExecuteEx()利用了shell添加的功能,文件关联是最大的,因此您可以启动为特定文件扩展名注册的可执行文件


两个api函数都有影响进程执行方式的选项。您将看到ProcessStartInfo类的属性与CreateProcess支持的属性以及ShellExecuteEx()使用的字段之间的密切关联。但这些功能并不重叠,因此您需要修改UseShellExecute。

这里回答了您的问题吗?看来MSDN会拥有所有这些。不是这样吗?它确实没有回答我的问题,它说“允许指定一个.doc文件并让相关程序打开该文件。”我也可以通过向进程发送一个参数来实现。。它不涉及权限、UAC和用户。谢谢,你知道UAC吗?用户权限?关于UAC,我们知道很多事情。除了“runas”动词外,它与这个问题没有任何关系。我的意思是,如果我的应用程序作为系统运行,我可以使用Shell Execute吗?如果我愿意,它会以当前用户的身份运行吗?是的。不,你真的需要用“提问”按钮来提问新问题,这不是一个论坛。实际上是我的问题。