ProcessStartInfo.UseShellExecute Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob zum Starten des Prozesses die Betriebssystemshell verwendet werden soll, oder legt diesen fest.Gets or sets a value indicating whether to use the operating system shell to start the process.

public:
 property bool UseShellExecute { bool get(); void set(bool value); };
public bool UseShellExecute { get; set; }
member this.UseShellExecute : bool with get, set
Public Property UseShellExecute As Boolean

Eigenschaftswert

Boolean

true, wenn beim Starten des Prozesses die Shell verwendet werden soll; false, wenn der Prozess direkt von der ausführbaren Datei aus erstellt werden soll.true if the shell should be used when starting the process; false if the process should be created directly from the executable file. Der Standardwert ist true für .NET Framework-apps und false für .net Core-apps.The default is true on .NET Framework apps and false on .NET Core apps.

Ausnahmen

Ein Versuch, den Wert für UWP-Apps (Universal Windows Platform) auf true festzulegen, wird unternommen.An attempt to set the value to true on Universal Windows Platform (UWP) apps occurs.

Beispiele

// Run "cl.exe /cld stdstr.cpp /link /out:sample.exe". UseShellExecute is false because we're specifying
// an executable directly and in this case depending on it being in a PATH folder. By setting
// RedirectStandardOutput to true, the output of cl.exe is directed to the Process.StandardOutput stream
// which is then displayed in this console window directly.    
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();
// Run "csc.exe /r:System.dll /out:sample.exe stdstr.cs". UseShellExecute is false because we're specifying
// an executable directly and in this case depending on it being in a PATH folder. By setting
// RedirectStandardOutput to true, the output of csc.exe is directed to the Process.StandardOutput stream
// which is then displayed in this console window directly.
using (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();
}
' Run "vbc.exe /reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb". UseShellExecute is False 
' because we're specifying an executable directly and in this case depending on it being in a PATH folder. 
' By setting RedirectStandardOutput to True, the output of csc.exe is directed to the Process.StandardOutput 
' stream which is then displayed in this console window directly.    
Using compiler As New Process()
    compiler.StartInfo.FileName = "vbc.exe"
    compiler.StartInfo.Arguments = "/reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb"
    compiler.StartInfo.UseShellExecute = False
    compiler.StartInfo.RedirectStandardOutput = True
    compiler.Start()

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

    compiler.WaitForExit()
End Using

Hinweise

Wenn Sie diese Eigenschaft auf festlegen, false können Sie Eingabe-, Ausgabe-und Fehler Datenströme umleiten.Setting this property to false enables you to redirect input, output, and error streams.

Das Wort "Shell" in diesem Kontext ( UseShellExecute ) bezieht sich auf eine grafische Shell (ähnlich der Windows-Shell) anstelle von Befehls Shells (z. b. bash oder sh ), mit der Benutzer grafische Anwendungen starten oder Dokumente öffnen können.The word "shell" in this context (UseShellExecute) refers to a graphical shell (similar to the Windows shell) rather than command shells (for example, bash or sh) and lets users launch graphical applications or open documents.

Hinweis

UseShellExecute muss sein false , wenn die- UserName Eigenschaft nicht null oder eine leere Zeichenfolge ist, oder wenn eine ausgelöst wird, InvalidOperationException Wenn die- Process.Start(ProcessStartInfo) Methode aufgerufen wird.UseShellExecute must be false if the UserName property is not null or an empty string, or an InvalidOperationException will be thrown when the Process.Start(ProcessStartInfo) method is called.

Wenn Sie die Betriebssystemshell zum Starten von Prozessen verwenden, können Sie ein beliebiges Dokument starten (bei dem es sich um einen beliebigen registrierten Dateityp handelt, der einer ausführbaren Datei mit einer standardmäßigen geöffneten Aktion zugeordnet ist) und Durchführung von Vorgängen für die Datei (z. b. Drucken) ProcessWhen you use the operating system shell to start processes, you can start any document (which is any registered file type associated with an executable that has a default open action) and perform operations on the file, such as printing, by using the Process object. Wenn UseShellExecute false den Wert hat, können Sie nur ausführbare Dateien starten, indem Sie das- Process Objekt verwenden.When UseShellExecute is false, you can start only executables by using the Process object.

Hinweis

UseShellExecute muss sein true , wenn Sie die- ErrorDialog Eigenschaft auf festlegen true .UseShellExecute must be true if you set the ErrorDialog property to true.

Wenn Sie auf festlegen WindowStyle ProcessWindowStyle.Hidden , UseShellExecute muss auf festgelegt werden true .If you set the WindowStyle to ProcessWindowStyle.Hidden, UseShellExecute must be set to true.

WorkingDirectoryWorkingDirectory

Die- WorkingDirectory Eigenschaft verhält sich abhängig vom Wert der- UseShellExecute Eigenschaft unterschiedlich.The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. Wenn UseShellExecute ist true , gibt die- WorkingDirectory Eigenschaft den Speicherort der ausführbaren Datei an.When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. Wenn WorkingDirectory eine leere Zeichenfolge ist, wird davon ausgegangen, dass das aktuelle Verzeichnis die ausführbare Datei enthält.If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

Wenn den Wert UseShellExecute false hat, wird die- WorkingDirectory Eigenschaft nicht zum Suchen der ausführbaren Datei verwendet.When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Stattdessen wird Sie nur vom Prozess verwendet, der gestartet wird und nur innerhalb des Kontexts des neuen Prozesses gemeint ist.Instead, it is used only by the process that is started and has meaning only within the context of the new process. Wenn UseShellExecute false den Wert hat, kann es sich bei der FileName Eigenschaft entweder um einen voll qualifizierten Pfad zur ausführbaren Datei oder um einen einfachen Namen der ausführbaren Datei handeln, der vom System in den von der PATH-Umgebungsvariablen angegebenen Ordnern gesucht werden soll.When UseShellExecute is false, the FileName property can be either a fully qualified path to the executable, or a simple executable name that the system will attempt to find within folders specified by the PATH environment variable.

Gilt für:

Weitere Informationen