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精确查找路径来执行,只支持各种非可执行程序的打开。但支持重定向输入和输出。
作者:我也是个傻瓜
出处:http://www.cnblogs.com/liweis/
签名:成熟是一种明亮而不刺眼的光辉。