Démarrer un processus en C#

Muhammad Zeeshan 12 octobre 2023
  1. Qu’est-ce qu’un processus en C#
  2. Utilisez Process.Start pour démarrer un processus en C#
  3. Utiliser ProcessStartInfo pour démarrer un processus en C#
  4. Utilisez Process.GetProcesses pour démarrer un processus en C#
  5. Utilisez Process.GetProcessesByName pour démarrer un processus en C#
  6. Utiliser StandardOutput pour démarrer un processus en C#
  7. Utilisez Process.Kill pour arrêter un processus en C#
Démarrer un processus en C#

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.

Sortie de démarrage de processus

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:

Informations sur le démarrage du processus

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:

Traiter les processus d’obtention

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:

Processus Obtenir les processus par nom

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:

Sortie standard

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();
  }
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

Article connexe - Csharp Process