ProcessStartInfo.UseShellExecute Propriété

Définition

Obtient ou définit une valeur indiquant s’il faut utiliser l’interpréteur de commandes du système d’exploitation pour démarrer le processus.

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 l’interpréteur de commandes doit être utilisé lors du démarrage du processus ; false si le processus doit être créé directement à partir du fichier exécutable. La valeur par défaut est false (ou true sur les applications .NET Framework).

Exceptions

Une tentative de définition de la valeur sur true sur les applications Plateforme Windows universelle (UWP) se produit.

Exemples

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

La ProcessStartInfo classe spécifie un ensemble de valeurs utilisées lors du démarrage d’un processus.

Définir la propriété UseShellExecute à false vous permet de rediriger les flux d'entrée, de sortie et d'erreur.

Le mot « shell » dans ce contexte (UseShellExecute) fait référence à un interpréteur de commandes graphique (similaire à l’interpréteur de commandes Windows) plutôt qu’à des interpréteurs de commandes (par exemple, bash ou sh) et permet aux utilisateurs de lancer des applications graphiques ou d’ouvrir des documents.

Note

UseShellExecute doit être false si la propriété UserName n’est pas null ou une chaîne vide, ou une InvalidOperationException sera levée lors de l'appel de la méthode Process.Start(ProcessStartInfo).

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 (qui est tout type de fichier inscrit associé à un exécutable disposant d’une action ouverte par défaut) et effectuer des opérations sur le fichier, telles que l’impression, à l’aide de l’objet Process . Vous pouvez exécuter uniquement des fichiers exécutables en utilisant l'objet UseShellExecute lorsque false est Process.

Note

UseShellExecute doit être true si vous définissez la ErrorDialog propriété sur true.

Répertoire de travail

La WorkingDirectory propriété se comporte différemment en fonction de la valeur de la UseShellExecute propriété. Quand UseShellExecute est true, la propriété WorkingDirectory spécifie l’emplacement de l’exécutable. S’il WorkingDirectory s’agit d’une chaîne vide, il est supposé que le répertoire actif contient l’exécutable.

Quand UseShellExecute est false, la propriété WorkingDirectory n'est pas utilisée pour rechercher l’exécutable. Au lieu de cela, il est utilisé uniquement par le processus démarré et a une signification uniquement dans le contexte du nouveau processus. Quand UseShellExecute est false, la propriété FileName peut être soit un chemin complet vers l’exécutable, soit un nom simple d'exécutable que le système tentera de trouver dans les dossiers définis par la variable d'environnement PATH. L’interprétation du chemin de recherche dépend du système d’exploitation. Pour plus d’informations, entrez HELP PATH ou man sh à l’invite de commandes.

S’applique à

Voir aussi