ProcessStartInfo.UseShellExecute Propriété

Définition

Obtient ou définit une valeur indiquant si le shell du système d'exploitation doit être utilisé pour démarrer le processus.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

Valeur de propriété

true si le shell doit être utilisé lors du démarrage du processus ; false si le processus doit être créé directement à partir du fichier exécutable.true if the shell should be used when starting the process; false if the process should be created directly from the executable file. La valeur par défaut est true sur les applications .NET Framework et les false sur les applications .NET Core.The default is true on .NET Framework apps and false on .NET Core apps.

Exceptions

Une tentative de définir la valeur sur true sur les applications UWP (plateforme Windows universelle) se produit.An attempt to set the value to true on Universal Windows Platform (UWP) apps occurs.

Exemples

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

Remarques

L’affectation de la valeur false à cette propriété vous permet de rediriger les flux d’entrée, de sortie et d’erreur.Setting this property to false enables you to redirect input, output, and error streams.

Le terme « Shell » dans ce contexte (UseShellExecute) fait référence à un interpréteur de commandes graphique (semblable au shell Windows) plutôt qu’à des shells de commande (par exemple, bash ou sh) et permet aux utilisateurs de lancer des applications graphiques ou des documents ouverts.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.

Notes

UseShellExecute doit être false si la propriété UserName n’est pas null ou une chaîne vide, ou une InvalidOperationException est levée lors de l’appel de la méthode Process.Start(ProcessStartInfo).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.

Lorsque vous utilisez l’interpréteur de commandes du système d’exploitation pour démarrer des processus, vous pouvez démarrer n’importe quel document (c’est-à-dire tout type de fichier enregistré associé à un fichier exécutable qui a une action d’ouverture par défaut) et effectuer des opérations sur le fichier, telles que l’impression, à l’aide de l’objet 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. Lorsque UseShellExecute est false, vous pouvez démarrer uniquement des exécutables à l’aide de l’objet Process.When UseShellExecute is false, you can start only executables by using the Process object.

Notes

UseShellExecute doit être true si vous définissez la propriété ErrorDialog sur true.UseShellExecute must be true if you set the ErrorDialog property to true.

Si vous affectez à la WindowStyle la valeur ProcessWindowStyle.Hidden, UseShellExecute doit avoir la valeur true.If you set the WindowStyle to ProcessWindowStyle.Hidden, UseShellExecute must be set to true.

WorkingDirectoryWorkingDirectory

La propriété WorkingDirectory se comporte différemment selon la valeur de la propriété UseShellExecute.The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. Lorsque UseShellExecute est true, la propriété WorkingDirectory spécifie l’emplacement de l’exécutable.When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. Si WorkingDirectory est une chaîne vide, il est supposé que le répertoire actif contient l’exécutable.If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

Lorsque UseShellExecute est false, la propriété WorkingDirectory n’est pas utilisée pour Rechercher l’exécutable.When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Au lieu de cela, elle est utilisée uniquement par le processus qui est démarré et n’a de sens que dans le contexte du nouveau processus.Instead, it is used only by the process that is started and has meaning only within the context of the new process. Lorsque UseShellExecute est false, la propriété FileName peut être soit un chemin d’accès complet au fichier exécutable, soit un nom d’exécutable simple que le système tente de trouver dans les dossiers spécifiés par la variable d’environnement 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.

S’applique à

Voir aussi