S2iEvolution.ProcessExecute 8.0.2

Process execute

Classe simplifiant l'execution de programmes externes avec redirection de flux.

Exemples

Ping avec redirection vers la console

using S2iEvolution.ProcessExecute;

Console.WriteLine("BEGIN");

// Récupération du flux de sortie de la console exécutant le programme
var consoleOut = Console.OpenStandardOutput();

// Création du processus "ping" sur le domaine google
var process = Process.Create("ping")
                .WithArguments("google.com")
                // On indique que le flux de sortie doit être redirigé vers la console et qu'on traite du texte.
                // Ainsi le flux de sortie sera lu ligne par ligne (contrairement au mode binaire)
                .WriteOutputTo(consoleOut, Process.StreamType.TEXT);

// On crée un token pour arrêter le processus car le ping s'effectue à l'infini
var cancellationIoTasksTokenSource = new CancellationTokenSource();

// On lance l'exécution de la commande
var task = process.ExecuteAsync(cancellationIoTasksTokenSource.Token);

// On attendant 1 seconde
await Task.Delay(5000);

// On arrête le processus
cancellationIoTasksTokenSource.Cancel();

// On récupère la valeur de sortie du processus
var exit = await task;

Console.WriteLine($"\nEND with value {exit}");

Génération d'un PDF avec WeasyPrint

⚠️ Cet exemple requiert que WeasyPrint soit installé et que la commande weasyprint soit accessible depuis le dossier d'exécution.

using S2iEvolution.ProcessExecute;

Console.WriteLine("BEGIN");

// Création du flux de sortie vers un fichier en écriture
var output = new FileStream("output.pdf", FileMode.Create);

// Création du processus "weasyprint" pour créer un PDF à partir d'un HTML
var process = Process.Create("weasyprint")
                .WithArguments([
                    "-", // weasyprint: lire le HTML depuis l'entrée standard
                    "-"  // weasyprint: ecrire le PDF sur la sortie standard
                ])
                // On envoie une chaine de caractères en tant qu'entrée standard du processus
                .ReadInputFrom(@"
                    <html>
                        <head>
                            <title>Test process</title>
                        </head>
                        <body>
                            <p>Coucou! Tu veux voir mon code?</p>
                            <code>
                                Console.WriteLine(""Hello World!"");
                            </code>
                        </body>
                    </html>
                ")
                // On donne le fichier en tant que sortie standard du processus
                // Par défaut le flux sera traité en tant que flux binaire (type = StreamType.BINARY). Cela est nécessaire
                // quand on traite autre chose que du texte (image ou pdf par exemple)
                .WriteOutputTo(output);

// On crée un token pour arrêter le processus car le ping s'effectue à l'infini
var cancellationIoTasksTokenSource = new CancellationTokenSource();

// On lance l'exécution de la commande
var exit = await process.ExecuteAsync(cancellationIoTasksTokenSource.Token);

// On ferme le fichier de sortie
output.Close();

Console.WriteLine($"\nEND with value {exit}");

Showing the top 20 packages that depend on S2iEvolution.ProcessExecute.

Packages Downloads
S2iEvolution.Razor2Pdf
Classe permettant de convertir un composant Razor ou de l'HTML pur en PDF.
12
S2iEvolution.Razor2Pdf
Classe permettant de convertir un composant Razor ou de l'HTML pur en PDF.
7
S2iEvolution.Razor2Pdf
Classe permettant de convertir un composant Razor ou de l'HTML pur en PDF.
6
S2iEvolution.Razor2Pdf
Classe permettant de convertir un composant Razor ou de l'HTML pur en PDF.
4

.NET 8.0

  • No dependencies.

Version Downloads Last updated
8.0.2 15 12/23/2024
8.0.1 8 12/19/2024