ProcessStartInfo.UseShellExecute Proprietà

Definizione

Ottiene o imposta un valore che indica se utilizzare la shell del sistema operativo per avviare il processo.

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

Valore della proprietà

true se la shell deve essere usata all'avvio del processo; false se il processo deve essere creato direttamente dal file eseguibile. Il valore predefinito è false (o true nelle app di .NET Framework).

Eccezioni

Si verifica un tentativo di impostare il valore su true nelle app Piattaforma UWP (Universal Windows Platform).

Esempio

// 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

Commenti

La ProcessStartInfo classe specifica un set di valori utilizzati all'avvio di un processo.

L'impostazione della UseShellExecute proprietà su false consente di reindirizzare flussi di input, output e errore.

La parola "shell" in questo contesto (UseShellExecute) fa riferimento a una shell grafica (simile alla shell di Windows) anziché alle shell dei comandi (ad esempio, bash o sh) e consente agli utenti di avviare applicazioni grafiche o aprire documenti.

Note

UseShellExecute deve essere false se la proprietà UserName non è null né una stringa vuota, altrimenti verrà generata un'eccezione InvalidOperationException quando il metodo Process.Start(ProcessStartInfo) viene chiamato.

Quando si utilizza la shell del sistema operativo per avviare i processi, è possibile avviare qualsiasi documento (qualsiasi tipo di file registrato associato a un eseguibile con un'azione aperta predefinita) ed eseguire operazioni sul file, ad esempio la stampa, utilizzando l'oggetto Process . Quando UseShellExecute è false, è possibile avviare solo i file eseguibili usando l'oggetto Process .

Note

UseShellExecute deve essere true se si imposta la ErrorDialog proprietà su true.

WorkingDirectory

La WorkingDirectory proprietà si comporta in modo diverso a seconda del valore della UseShellExecute proprietà. Quando UseShellExecute è true, la WorkingDirectory proprietà specifica il percorso dell'eseguibile. Se WorkingDirectory è una stringa vuota, si presuppone che la directory corrente contenga il file eseguibile.

Quando UseShellExecute è false, la WorkingDirectory proprietà non viene utilizzata per trovare l'eseguibile. Viene invece usato solo dal processo avviato e ha significato solo all'interno del contesto del nuovo processo. Quando UseShellExecute è false, la FileName proprietà può essere un percorso completo dell'eseguibile o un nome eseguibile semplice che il sistema tenterà di trovare all'interno delle cartelle specificate dalla PATH variabile di ambiente. L'interpretazione del percorso di ricerca dipende dal sistema operativo. Per altre informazioni, immettere HELP PATH o man sh al prompt dei comandi.

Si applica a

Vedi anche