Suppression de la visibilité de la fenêtre de la console lors de la création d'un processus à distance
Lors de l'exécution de commandes à distance à l'aide de System.Diagnostics.Process, les utilisateurs peuvent rencontrer le problème d'un fenêtre de console visible perturbant leur flux de travail. Malgré la définition de propriétés telles que CreateNoWindow et WindowStyle sur Hidden, la fenêtre de la console apparaît toujours.
Pour éliminer ce problème, il est crucial de s'assurer que la propriété UseShellExecute est définie sur false. Comme expliqué par MSDN, si UseShellExecute est défini sur true ou si l'une des propriétés UserName ou Password n'est pas nulle, CreateNoWindow sera ignoré, ce qui entraînera l'affichage d'une nouvelle fenêtre.
Pour corriger ce comportement, utilisez l'extrait de code suivant :
ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = fullPath; startInfo.Arguments = args; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process processTemp = new Process(); processTemp.StartInfo = startInfo; processTemp.EnableRaisingEvents = true; try { processTemp.Start(); } catch (Exception e) { throw; }
En définissant UseShellExecute sur false, CreateNoWindow sera respecté, garantissant qu'aucune console La fenêtre s'affiche pendant l'exécution du processus distant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!