ProcessStartInfo.UseShellExecute Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.