您的位置:首页 > 运维架构 > Shell

ProcessStartInfo.UseShellExecute 属性

2016-04-14 17:54 537 查看
获取或设置一个值,该值指示是否使用操作系统外壳程序启动进程。

命名空间:System.Diagnostics
程序集:System(在 system.dll 中)

语法

C#
C++
VB

public bool UseShellExecute { get; set; }


J#

/** @property */
public boolean get_UseShellExecute ()

/** @property */
public void set_UseShellExecute (boolean value)


JScript

public function get UseShellExecute () : boolean

public function set UseShellExecute (value : boolean)


属性值

若要在启动进程时使用外壳程序,则为 true;否则,直接从可执行文件创建进程。默认为 true

备注

将此属性设置为 false 使您能够重定向输入流、输出流和错误流。


注意
如果 UserName 属性不为 空引用(在 Visual Basic 中为 Nothing) 或不是一个空字符串,则 UseShellExecute 必须为 false,否则调用Process.Start(ProcessStartInfo) 方法时将引发 InvalidOperationException

使用操作系统外壳程序启动进程时,您能够使用 Process 组件启动任何文档(可以是任何与可执行文件关联的、拥有默认打开操作的注册文件类型),并对该文件执行操作(如打印)。当 UseShellExecutefalse 时,使用 Process 组件仅能启动可执行文件。


注意
如果将 ErrorDialog 属性设置为 true,则 UseShellExecute 必须为 true

WorkingDirectory 属性的行为在 UseShellExecutetrue 并当 UseShellExecutefalse 时是不同的。当 UseShellExecutetrue时,WorkingDirectory 属性指定可执行文件的位置。如果 WorkingDirectory 是空字符串,则认为当前目录包含可执行文件。

UseShellExecutefalse 时,不使用 WorkingDirectory 属性查找可执行文件。相反,它被已启动的进程使用,并且只在新进程的上下文中有意义。

示例

C#
C++
VB

Process compiler = new Process();
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();

Console.WriteLine(compiler.StandardOutput.ReadToEnd());

compiler.WaitForExit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: