Starten einen Prozess in C#

Muhammad Zeeshan 12 Oktober 2023
  1. Was ist ein Prozess in C#
  2. Verwenden von Process.Start zum Starten eines Prozesses in C#
  3. Verwendung von ProcessStartInfo um einen Prozess zu starten in C#
  4. Verwendung von Process.GetProcesses um einen Prozess zu starten in C#
  5. Verwendung von Process.GetProcessesByName um einen Prozess zu starten in C#
  6. Verwendung von StandardOutput zum Starten eines Prozesses in C#
  7. Verwenden Sie Process.Kill, um einen Prozess in C# zu stoppen
Starten einen Prozess in C#

In diesem Artikel werden zahlreiche Möglichkeiten zum Starten eines Prozesses in C# untersucht.

Was ist ein Prozess in C#

Ein Process erlaubt Entwicklern, auf lokale und entfernte Prozesse zuzugreifen und lokale Systemprozesse zu initiieren und zu beenden.

ProcessStartInfo definiert eine Sammlung von Werten, die verwendet werden, wenn ein Prozess gestartet wird. Die Klasse Process befindet sich im Namensraum System.Diagnostics.

Verwenden von Process.Start zum Starten eines Prozesses in C#

Befolgen Sie diese Schritte, um einen Prozess mit Process.Start zu starten.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;

Erstellen Sie die Klasse Main und schreiben Sie in die Klasse Main diesen Code zum Starten eines Prozesses (geben Sie das Programm, die URL oder die Datei an, die Sie starten möchten).

Process.Start(@"C:\Users\Shani\Desktop\process.txt");

Quellcode:

using System;
using System.Diagnostics;

class ProcesswithProcessStart {
  public static void Main() {
    Process.Start(@"C:\Users\Shani\Desktop\process.txt");
    Console.WriteLine("Done");
  }
}

Mit der Funktion Start wird der Vorgang gestartet. Wir erhalten diese Ausgabe nach dem Ausführen der Klasse ProcesswithProcessStart.

Ausgabe des Prozessstarts

Verwendung von ProcessStartInfo um einen Prozess zu starten in C#

Wir können jede ausführbare Datei ausführen. Allerdings können Attribute auf ProcessStartInfo erforderlich sein.

Starten Sie einen Prozess mit der Methode ProcessStartInfo, indem Sie die folgenden Schritte ausführen.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;

Das Attribut StartInfo.FileName spezifiziert das zu startende Programm oder Dokument. Wir verwenden das Microsoft Word-Programm als Beispiel. Es ist ein einfacher Texteditor und -schreiber.

process.StartInfo.FileName = "WINWORD.EXE";

Der Dateiname wird als Parameter an StartInfo.Arguments übergeben. Hier starten wir eine Word-Datei mit dem Namen process.docx.

process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";

Quellcode:

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();

Ausgabe:

Informationen zum Prozessstart

Verwendung von Process.GetProcesses um einen Prozess zu starten in C#

Die Methode Process.GetProcesses generiert eine Liste neuer Process-Komponenten, die mit bestehenden Prozessressourcen verknüpft sind.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;

Dieser Code erzeugt eine Liste aller Prozesse.

Process[] LinkedProcesses = Process.GetProcesses();

Danach erhalten wir eine Reihe von Prozessen.

Array.ForEach(LinkedProcesses, (process) => {
  Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});

Die ReadKey()-Funktion hält den Bildschirm.

Console.ReadKey();

Quellcode:

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();

Ausgabe:

Prozesse abrufen

Verwendung von Process.GetProcessesByName um einen Prozess zu starten in C#

Die Methode Process.GetProcessesByName generiert ein Array von neuen Process-Komponenten und korreliert sie mit bestehenden Prozessressourcen mit demselben Namen wie der bereitgestellte Prozess.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;

Im Beispiel werden alle mit dem Internet Download Manager verbundenen Prozesse generiert. Ihre IDs und Prozessnamen werden generiert.

Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");

Benutzer erhalten die Liste der Prozesse mit dem Namen IDM darin.

Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);

Um auf alle von der Funktion zurückgegebenen Prozesse zuzugreifen, verwenden wir eine foreach-Schleife.

Auf die ID jedes Prozesses wird zugegriffen. Schließlich zeigen wir die Gesamtzahl der entdeckten Prozesse an.

Array.ForEach(LinkedProcesses, (process) => {
  Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});

Quellcode:

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();

Ausgabe:

Prozess Abrufen von Prozessen nach Namen

Verwendung von StandardOutput zum Starten eines Prozesses in C#

Die Eigenschaft StandardOutput gibt einen Pfad zurück, der verwendet werden kann, um die textbasierte Ausgabe der Anwendung zu lesen.

Wir können die Standardprozessausgabe mit dieser Eigenschaft (verfügbar auf ProcessStartInfo) umleiten. Wir können die Ausgabe eines Programms von einem anderen beobachten.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;
using System.IO;

Wir geben den Namen des Prozesses an, den wir hier ausgeben möchten.

Prs.StartInfo.FileName = "ipconfig.exe";

Wir können Eingabe-, Ausgabe- und Fehlerströme umleiten, indem wir UseShellExecute auf false setzen.

Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;

Dieser Code startet den Prozess mit den von Ihnen bereitgestellten Informationen.

Prs.Start();

Für die Standardausgabe besorgen wir uns den StreamReader.

StreamReader sr = Prs.StandardOutput;

Mit der Funktion ReadToEnd() werden alle Daten gelesen.

string dataoutput = sr.ReadToEnd();

ReadKey() hält den Bildschirm, um die Ausgabe anzuzeigen.

Console.ReadKey();

Quellcode:

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

Ausgabe:

Standardausgabe

Verwenden Sie Process.Kill, um einen Prozess in C# zu stoppen

Das folgende Beispiel startet ein Programm und beendet es nach einigen Sekunden.

Importieren Sie die folgenden Bibliotheken.

using System;
using System.Diagnostics;
using System.Threading;

Mit Thread.Sleep(5000) startet der Prozess Notepad und beendet ihn nach drei Sekunden.

Thread.Sleep(5000);

Mit der Funktion Kill() wird der Vorgang beendet.

process.Kill();

Quellcode:

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

Verwandter Artikel - Csharp Process