C# 启动UseShellExecute属性设置

一个小小的细节难以不会改变大局,但多个细节可能会影响成败。

在C#中使用Process启动时,ProcessStartInfo参数的UseShellExecute属性可设置为true和false,两者有什么区别,该如何使用?

Process.Start 本质上是启动一个新的子进程,当设置为true时,调用ShellExecute方法,设置为false时,调用CreateProcess方法。

ShellExecute 可打开任何文件

ShellExecute方法可打开程序或者文件或者其他任何能够打开的内容,常见的包括:

(1)可执行程序:如exe

(2)网址:任何http地址;

(3)文件:一个 html 、 mp4、 jpg、 docx 等各种文件;

(4)环境变化中程序:在 PATH 环境变量中的各种程序

但是,它也有自己的局限:

(1)不支持重定向输入和输出;

(2)最终启动的进程不确定,可能潜在的安全风险。

CreateProcess 可实现重定向

CreateProcess精确查找路径来执行,只支持各种非可执行程序的打开。但支持重定向输入和输出。

posted @ 2023-04-25 11:19  我也是个傻瓜  阅读(1170)  评论(0编辑  收藏  举报