ConsoleAppLauncher est une bibliothèque open source conçue spécifiquement pour répondre à cette question. Elle capture toutes les sorties générées dans la console et fournit une interface simple pour démarrer et fermer l'application console.
L'événement ConsoleOutput est déclenché à chaque fois qu'une nouvelle ligne est écrite par la console sur la sortie standard/erreur. Les lignes sont mises en file d'attente et il est garanti qu'elles suivront l'ordre de sortie.
Également disponible sous forme de Paquet NuGet .
Exemple d'appel pour obtenir la sortie complète de la console :
// Run simplest shell command and return its output.
public static string GetWindowsVersion()
{
return ConsoleApp.Run("cmd", "/c ver").Output.Trim();
}
Échantillon avec retour d'information en direct :
// Run ping.exe asynchronously and return roundtrip times back to the caller in a callback
public static void PingUrl(string url, Action<string> replyHandler)
{
var regex = new Regex("(time=|Average = )(?<time>.*?ms)", RegexOptions.Compiled);
var app = new ConsoleApp("ping", url);
app.ConsoleOutput += (o, args) =>
{
var match = regex.Match(args.Line);
if (match.Success)
{
var roundtripTime = match.Groups["time"].Value;
replyHandler(roundtripTime);
}
};
app.Run();
}
0 votes
Duplicata possible de Process.start : comment obtenir la sortie ?
3 votes
Veuillez consulter les dates des deux questions et voir laquelle est "en double"
1 votes
Le "doublon possible" est un moyen de faire le ménage, c'est-à-dire de fermer les questions similaires et de conserver celle qui contient les meilleures réponses. La date n'est pas essentielle. Voir aussi Dois-je voter pour fermer une question dupliquée, même si elle est beaucoup plus récente et a des réponses plus à jour ? Si vous estimez qu'une clarification est nécessaire, veuillez voter sur Ajouter un lien de clarification au commentaire automatisé "Possible duplicate" (doublon possible)