Démarrer un processus en C#
-
Qu’est-ce qu’un processus en
C#
-
Utilisez
Process.Start
pour démarrer un processus enC#
-
Utiliser
ProcessStartInfo
pour démarrer un processus enC#
-
Utilisez
Process.GetProcesses
pour démarrer un processus enC#
-
Utilisez
Process.GetProcessesByName
pour démarrer un processus enC#
-
Utiliser
StandardOutput
pour démarrer un processus enC#
-
Utilisez
Process.Kill
pour arrêter un processus enC#
Cet article examinera de nombreuses façons de démarrer un processus en C#.
Qu’est-ce qu’un processus en C#
Un processus
permet aux développeurs d’accéder à des processus locaux et distants et d’initier et de terminer des processus système locaux.
ProcessStartInfo
définit une collection de valeurs utilisées lorsqu’un process
est démarré. La classe Process
se trouve dans l’espace de noms System.Diagnostics
.
Utilisez Process.Start
pour démarrer un processus en C#
Suivez ces étapes pour démarrer un processus avec Process.Start
.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
Créez la classe Main
, et à l’intérieur de la classe Main
, écrivez ce code pour démarrer un processus (spécifiez le programme, l’URL ou le fichier que vous souhaitez lancer).
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Code source:
using System;
using System.Diagnostics;
class ProcesswithProcessStart {
public static void Main() {
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Console.WriteLine("Done");
}
}
La fonction Start
permet de démarrer le processus. Nous obtiendrons cette sortie après avoir exécuté la classe ProcesswithProcessStart
.
Utiliser ProcessStartInfo
pour démarrer un processus en C#
Nous pouvons exécuter n’importe quel exécutable. Cependant, des attributs sur ProcessStartInfo
peuvent être requis.
Démarrez un processus à l’aide de la méthode ProcessStartInfo
en suivant les étapes ci-dessous.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
L’attribut StartInfo.FileName
spécifie le programme ou le document à lancer. Nous utiliserons le programme Microsoft Word comme exemple. C’est un éditeur de texte et un écrivain de base.
process.StartInfo.FileName = "WINWORD.EXE";
Le nom du fichier est passé à StartInfo.Arguments
en tant que paramètre. Ici nous allons lancer un fichier word nommé process.docx
.
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
Code source:
using System;
using System.Diagnostics;
Process process = new Process();
process.StartInfo.FileName = "WINWORD.EXE";
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
process.Start();
Production:
Utilisez Process.GetProcesses
pour démarrer un processus en C#
La méthode Process.GetProcesses
génère une liste de nouveaux composants Process
liés à des ressources de processus existantes.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
Ce code produira une liste de tous les processus.
Process[] LinkedProcesses = Process.GetProcesses();
Suite à cela, nous obtenons un tableau de processus.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
La fonction ReadKey()
tiendra l’écran.
Console.ReadKey();
Code source:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcesses();
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
Production:
Utilisez Process.GetProcessesByName
pour démarrer un processus en C#
La méthode Process.GetProcessesByName
génère un tableau de nouveaux composants Process
et les corrèle avec les ressources de processus existantes portant le même nom que le processus fourni.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
Tous les processus associés à Internet Download Manager sont générés dans l’exemple. Leurs ID et noms de processus sont générés.
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Les utilisateurs obtiennent la liste des processus contenant le nom “IDM”.
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Pour accéder à tous les Process renvoyés par la fonction, nous utilisons une boucle foreach
.
L’ID de chaque processus est accessible. Enfin, nous affichons le nombre total de processus découverts.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Code source:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
Production:
Utiliser StandardOutput
pour démarrer un processus en C#
La propriété StandardOutput
renvoie un chemin qui peut être utilisé pour lire la sortie textuelle de l’application.
Nous pouvons rediriger la sortie standard du processus en utilisant cette propriété (disponible sur ProcessStartInfo
). Nous pouvons observer la sortie d’un programme à partir d’un autre.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
using System.IO;
Nous allons spécifier le nom du processus que nous souhaitons afficher ici.
Prs.StartInfo.FileName = "ipconfig.exe";
Nous pouvons rediriger les flux d’entrée, de sortie et d’erreur en définissant UseShellExecute
sur false.
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Ce code lancera le processus en utilisant les informations que vous avez fournies.
Prs.Start();
Pour la sortie standard, on obtient le StreamReader
.
StreamReader sr = Prs.StandardOutput;
La fonction ReadToEnd()
permet de lire toutes les données.
string dataoutput = sr.ReadToEnd();
ReadKey()
tiendra l’écran pour afficher la sortie.
Console.ReadKey();
Code source:
using System;
using System.Diagnostics;
using System.IO;
class StandarOutput {
public static void Main() {
using (Process Prs = new Process()) {
Prs.StartInfo.FileName = "ipconfig.exe";
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Prs.Start();
StreamReader sr = Prs.StandardOutput;
string dataoutput = sr.ReadToEnd();
Console.WriteLine(dataoutput);
Console.ReadKey();
}
}
}
Production:
Utilisez Process.Kill
pour arrêter un processus en C#
L’exemple suivant lance un programme puis le termine après quelques secondes.
Importez les bibliothèques ci-dessous.
using System;
using System.Diagnostics;
using System.Threading;
En utilisant Thread.Sleep(5000)
, le processus lance le Bloc-notes et le termine au bout de trois secondes.
Thread.Sleep(5000);
La fonction Kill()
est utilisée pour terminer le processus.
process.Kill();
Code source:
using System;
using System.Diagnostics;
using System.Threading;
class KillProcess {
public static void Main() {
Process process = Process.Start("notepad.exe");
Thread.Sleep(1000);
process.Kill();
}
}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn