ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute Property

Definizione

Ottiene o imposta un valore che indica se utilizzare la shell del sistema operativo per avviare il processo.Gets or sets a value indicating whether to use the operating system shell to start the process.

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 utilizzata all'avvio del processo; false se il processo deve essere creato direttamente dal file eseguibile.true if the shell should be used when starting the process; false if the process should be created directly from the executable file. Il valore predefinito è true nelle app .NET Framework e false nelle app .NET Core.The default is true on .NET Framework apps and false on .NET Core apps.

Eccezioni

Si verifica un tentativo di impostare il valore su true nelle app UWP (Universal Windows Platform).An attempt to set the value to true on Universal Windows Platform (UWP) apps occurs.

Esempi

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

Commenti

Impostando questa proprietà su false consente di reindirizzare i flussi di input, output e di errore.Setting this property to false enables you to redirect input, output, and error streams.

La parola "shell" in questo contesto (UseShellExecute) si riferisce a una shell grafica, simile alla shell di Windows, anziché a shell dei comandi (ad esempio bash o sh) e consente agli utenti di avviare le applicazioni con interfaccia grafiche o documenti aperti.The word "shell" in this context (UseShellExecute) refers to a graphical shell (similar to the Windows shell) rather than command shells (for example, bash or sh) and lets users launch graphical applications or open documents.

Nota

UseShellExecute deve essere false se il UserName proprietà non è null o una stringa vuota, o un' InvalidOperationException viene generata quando il Process.Start(ProcessStartInfo) viene chiamato il metodo.UseShellExecute must be false if the UserName property is not null or an empty string, or an InvalidOperationException will be thrown when the Process.Start(ProcessStartInfo) method is called.

Quando si utilizza la shell del sistema operativo per avviare i processi, è possibile avviare un documento qualsiasi (ovvero, qualsiasi tipo di file registrato associato a un eseguibile con azione di apertura predefinita) ed eseguire operazioni sul file come ad esempio la stampa, utilizzando l'oggetto Process.When you use the operating system shell to start processes, you can start any document (which is any registered file type associated with an executable that has a default open action) and perform operations on the file, such as printing, by using the Process object. Quando UseShellExecute è false, è possibile avviare solo gli eseguibili utilizzando l'oggetto Process.When UseShellExecute is false, you can start only executables by using the Process object.

Nota

UseShellExecute deve essere true se si imposta la ErrorDialog proprietà true.UseShellExecute must be true if you set the ErrorDialog property to true.

Se si impostano i WindowStyle al ProcessWindowStyle.Hidden, UseShellExecute deve essere impostata su true.If you set the WindowStyle to ProcessWindowStyle.Hidden, UseShellExecute must be set to true.

WorkingDirectoryWorkingDirectory

La proprietà WorkingDirectory si comporta in modo diverso a seconda del valore della proprietà UseShellExecute.The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. Quando UseShellExecute viene true, il WorkingDirectory proprietà specifica il percorso del file eseguibile.When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. Se WorkingDirectory è una stringa vuota, si presuppone che la directory corrente contenga l'eseguibile.If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

Quando UseShellExecute viene false, il WorkingDirectory proprietà non viene utilizzata per trovare il file eseguibile.When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Viene invece utilizzata solo dal processo avviato ed è significativa solo all'interno del contesto del nuovo processo.Instead, it is used only by the process that is started and has meaning only within the context of the new process. Quando UseShellExecute viene false, il FileName proprietà può essere un percorso completo del file eseguibile o un semplice nome di eseguibile che il sistema tenterà di trovare all'interno di cartelle specificate dalla variabile di ambiente PATH.When UseShellExecute is false, the FileName property can be either a fully qualified path to the executable, or a simple executable name that the system will attempt to find within folders specified by the PATH environment variable.

Si applica a

Vedi anche