Proprietà ProcessStartInfo.UseShellExecute (System.Diagnostics)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Proprietà ProcessStartInfo.UseShellExecute
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

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

Spazio dei nomi:  System.Diagnostics
Assembly:  System (in System.dll)
Sintassi

Visual Basic
Public Property UseShellExecute As Boolean
	Get
	Set
C#
public bool UseShellExecute { get; set; }
Visual C++
public:
property bool UseShellExecute {
	bool get ();
	void set (bool value);
}
F#
member UseShellExecute : bool with get, set

Valore proprietà

Tipo: System.Boolean
true per utilizzare la shell all'avvio del processo; in caso contrario, il processo viene creato direttamente dal file eseguibile. Il valore predefinito è true.
Note

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

Nota 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 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.

Esempi

Visual Basic

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()


C#

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();


Visual C++

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();


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 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.
Vedere anche

Riferimenti