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.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Betriebssystemshell zum Starten des Prozesses verwendet werden soll.
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 die Shell beim Starten des Prozesses verwendet werden soll; false wenn der Prozess direkt aus der ausführbaren Datei erstellt werden soll. Der Standardwert ist false (oder true für .NET Framework-Apps).
Ausnahmen
Es wird versucht, den Wert auf true für Universelle Windows-Plattform (UWP) Apps festzulegen.
Beispiele
// 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
Die ProcessStartInfo Klasse gibt einen Satz von Werten an, die beim Starten eines Prozesses verwendet werden.
Durch das Festlegen der UseShellExecute-Eigenschaft auf false können Sie Eingabe-, Ausgabe- und Fehlströme umleiten.
Das Wort "shell" in diesem Kontext (UseShellExecute) bezieht sich auf eine grafische Shell (ähnlich der Windows-Shell) und nicht auf Befehlsshells (z bash . B. oder sh) und ermöglicht benutzern das Starten grafischer Anwendungen oder Öffnen von Dokumenten.
Note
UseShellExecute muss false sein, wenn die UserName Eigenschaft nicht null oder eine leere Zeichenfolge ist, sonst wird eine InvalidOperationException ausgelöst, wenn die Process.Start(ProcessStartInfo) Methode aufgerufen wird.
Wenn Sie die Betriebssystemshell verwenden, um Prozesse zu starten, 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 Standardmäßige geöffnete Aktion enthält) und Vorgänge für die Datei ausführen, z. B. drucken, indem Sie das Process Objekt verwenden. Wenn UseShellExecutefalse ist, können Sie nur ausführbare Dateien über das Process-Objekt starten.
Note
UseShellExecute muss true sein, wenn Sie die ErrorDialog-Eigenschaft auf true setzen.
WorkingDirectory
Die WorkingDirectory Eigenschaft verhält sich je nach Dem Wert der UseShellExecute Eigenschaft anders. Wenn UseShellExecutetrue ist, gibt die Eigenschaft WorkingDirectory den Speicherort der ausführbaren Datei an. Wenn WorkingDirectory es sich um eine leere Zeichenfolge handelt, wird davon ausgegangen, dass das aktuelle Verzeichnis die ausführbare Datei enthält.
Wenn UseShellExecutefalse ist, wird die WorkingDirectory-Eigenschaft nicht verwendet, um die ausführbare Datei zu finden. Stattdessen wird er nur von dem gestarteten Prozess verwendet und hat nur im Kontext des neuen Prozesses Bedeutung. Wenn UseShellExecutefalse ist, kann die FileName-Eigenschaft entweder ein vollqualifizierter Pfad zur ausführbaren Datei sein oder ein einfacher ausführbarer Name, den das System in den durch die PATH-Umgebungsvariable angegebenen Ordnern sucht. Die Interpretation des Suchpfads hängt vom Betriebssystem ab. Für weitere Informationen geben Sie HELP PATH oder man sh an einer Eingabeaufforderung ein.