ProcessStartInfo.UseShellExecute Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob zum Starten des Prozesses die Betriebssystemshell verwendet werden soll, oder legt diesen fest.
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
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. Der Standardwert ist true
für .NET Framework-Apps und false
für .NET Core-Apps.
Ausnahmen
Ein Versuch, den Wert für UWP-Apps (Universal Windows Platform) auf true
festzulegen, wird unternommen.
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 Fehlerdatenströme umleiten.
Das Wort "Shell" bezieht sich in diesem Kontext (UseShellExecute
) auf eine grafische Shell (ähnlich der Windows-Shell) und nicht auf Befehlsshells (z. B. oder sh
) und ermöglicht es Benutzern, bash
grafische Anwendungen zu starten oder Dokumente zu öffnen.
Hinweis
UseShellExecute muss sein false
, wenn die UserName -Eigenschaft nicht null
oder eine leere Zeichenfolge ist, oder ein InvalidOperationException wird ausgelöst, wenn die Process.Start(ProcessStartInfo) -Methode aufgerufen wird.
Wenn Sie die Betriebssystemshell zum Starten von Prozessen verwenden, können Sie ein beliebiges Dokument starten (bei dem es sich um einen registrierten Dateityp handelt, der einer ausführbaren Datei zugeordnet ist, die eine Standardaktion zum Öffnen aufweist) und Vorgänge für die Datei ausführen, z. B. drucken, indem Sie das Process -Objekt verwenden. Wenn UseShellExecute ist false
, können Sie nur ausführbare Dateien mithilfe des Process -Objekts starten.
Hinweis
UseShellExecute muss sein true
, wenn Sie die ErrorDialog -Eigenschaft auf true
festlegen.
WorkingDirectory
Die WorkingDirectory -Eigenschaft verhält sich je nach Wert der UseShellExecute Eigenschaft unterschiedlich. Wenn UseShellExecute ist true
, gibt die WorkingDirectory -Eigenschaft den Speicherort der ausführbaren Datei an. Wenn WorkingDirectory eine leere Zeichenfolge ist, wird davon ausgegangen, dass das aktuelle Verzeichnis die ausführbare Datei enthält.
Wenn UseShellExecute ist false
, wird die WorkingDirectory -Eigenschaft nicht verwendet, um die ausführbare Datei zu finden. Stattdessen wird es nur von dem prozess verwendet, der gestartet wird und nur im Kontext des neuen Prozesses Bedeutung hat. Wenn UseShellExecute ist false
, kann die FileName -Eigenschaft entweder ein vollqualifizierter Pfad zur ausführbaren Datei oder ein einfacher ausführbarer Name sein, den das System in von der PATH
Umgebungsvariablen angegebenen Ordnern zu finden versucht. Die Interpretation des Suchpfads hängt vom Betriebssystem ab. Um weitere Informationen zu erfahren, geben Sie HELP PATH
oder man sh
an einer Eingabeaufforderung ein.
Gilt für:
Weitere Informationen
Feedback
Feedback senden und anzeigen für