Ottiene o imposta un valore che indica se utilizzare la shell del sistema operativo per avviare il processo.
Assembly: System (in System.dll)
Public Property UseShellExecute As Boolean Get Set
public bool UseShellExecute { get; set; }
public: property bool UseShellExecute { bool get (); void set (bool value); }
member UseShellExecute : bool with get, set
Valore proprietà
Tipo: System.Booleantrue per utilizzare la shell all'avvio del processo; in caso contrario, il processo viene creato direttamente dal file eseguibile. Il valore predefinito è true.
L'impostazione di questa proprietà su false consente di reindirizzare i flussi di input, output e di errore.
Nota
|
|---|
|
La proprietà UseShellExecute deve essere false se la proprietà UserName non è null o una stringa vuota oppure viene generata un'eccezione InvalidOperationException se si chiama il metodo Process.Start(ProcessStartInfo). |
Quando si utilizza la shell del sistema operativo per avviare i processi, è possibile avviare qualsiasi documento (ovvero, qualsiasi tipo di file registrato associato a un eseguibile con azione di apertura predefinita) ed eseguire operazioni sul file, ad esempio la stampa, con il componente Process. Quando UseShellExecute è false, è possibile avviare solo eseguibili con il componente Process.
Nota
|
|---|
|
UseShellExecute deve essere true se si imposta la proprietà ErrorDialog su true. |
La proprietà WorkingDirectory ha un comportamento diverso quando UseShellExecute è true e quando UseShellExecute è false. Quando UseShellExecute è true, la proprietà WorkingDirectory specifica il percorso dell'eseguibile. Se WorkingDirectory è una stringa vuota, si presumerà che la directory corrente contenga l'eseguibile.
Quando UseShellExecute è false, la proprietà WorkingDirectory non verrà utilizzata per trovare l'eseguibile, ma verrà utilizzata dal processo avviato e avrà significato solo all'interno del contesto del nuovo processo.
Dim compiler As 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 = 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();
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Nota