J'ai une application console C # (A). Je veux exécuter une autre application de console (B) à partir de l'application A (de manière synchrone) de telle manière que B utilise la même fenêtre de commande. Lorsque B existe, A devrait pouvoir lire le code de sortie de B.
Comment faire ça? Je n'ai besoin que de ce petit conseil sur la façon d'exécuter cette autre application dans la même fenêtre cmd.
Vous pouvez utiliser Process.Start
pour démarrer l'autre application console.
Vous devrez construire le processus avec ProcessStartInfo.RedirectOutput
défini sur true
et UseShellExecute
défini sur false
afin de pouvoir utiliser vous-même la sortie.
Vous pouvez ensuite lire la sortie en utilisant StandardOutput.ReadToEnd
sur le processus.
Vous pouvez démarrer un autre processus à l'aide de l'appel Process.Start()
. Les exemples ici montrent comment lire la sortie d'un autre processus et attendre qu'il se termine.
Vous pouvez démarrer un autre processus avec Process.Start - peu importe qu'il s'agisse d'une application console ou non. Si votre application s'exécute déjà dans une fenêtre de console, l'application nouvellement générée utilisera également cette fenêtre de console.
var proc = Process.Start( "...path to second app" );
proc.WaitForExit();
var exitCode = proc.ExitCode;
Assurez-vous de préparer les documents sur la classe Process car il existe une variété de petites nuances qui peuvent affecter la façon dont votre application secondaire est lancée.
J'ai pu exécuter le programme "B" dans le cadre de la même fenêtre de commande en appelant la configuration suivante:
ConsoleColor color = Console.ForegroundColor;
ProcessStartInfo startinfo = new ProcessStartInfo(nameProgramB);
startinfo.CreateNoWindow = false;
startinfo.UseShellExecute = false;
Process p = Process.Start(startinfo);
p.WaitForExit();
Console.ForegroundColor = color;
de cette façon, les deux programmes s'exécutent de façon sournoise comme s'ils étaient un seul programme. 'nameProgramB' est le nom pour programmer 'B'. J'espère que cela t'aides.
vous pouvez "encapsuler" l'ancienne application console avec la nouvelle en l'incluant dans vos références et en la démarrant en appelant la méthode appelée dans la méthode run de la classe de programme
Remplissez un System.Diagnostics.ProcessStartInfo et passez-le à Process.Start
Vous pouvez WaitForExit
sur le processus résultant et utilisez puis utilisez la propriété ExitCode
du processus pour voir la valeur de retour.