ProcessStartInfo.UseShellExecute 属性

获取或设置一个值,该值指示是否使用操作系统外壳程序启动进程。

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

语法

声明
Public Property UseShellExecute As Boolean
用法
Dim instance As ProcessStartInfo
Dim value As Boolean

value = instance.UseShellExecute

instance.UseShellExecute = value
public bool UseShellExecute { get; set; }
public:
property bool UseShellExecute {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_UseShellExecute ()

/** @property */
public void set_UseShellExecute (boolean value)
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 属性查找可执行文件。相反,它被已启动的进程使用,并且只在新进程的上下文中有意义。

示例

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()
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();
Process^ compiler = gcnew Process;
compiler->StartInfo->FileName = "cl.exe";
compiler->StartInfo->Arguments = "/clr stdstr.cpp /link /out:sample.exe";
compiler->StartInfo->UseShellExecute = false;
compiler->StartInfo->RedirectStandardOutput = true;
compiler->Start();

Console::WriteLine( compiler->StandardOutput->ReadToEnd() );

compiler->WaitForExit();

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0

请参见

参考

ProcessStartInfo 类
ProcessStartInfo 成员
System.Diagnostics 命名空间
ProcessStartInfo.RedirectStandardInput 属性
ProcessStartInfo.RedirectStandardOutput 属性
ProcessStartInfo.RedirectStandardError 属性