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.