Mittwoch, 26. Mai 2010

Prozess starten mit C#

Mit dem .Net Framework ist das Starten eines externen Prozesses / Programmes im Handumdrehen erledigt.
Der Befehl System.Diagnostics.Process.Start() startet die .exe - Datei, dessen Pfad als Argument angegeben wurde.
Um beispielsweise den Editor zu öffnen gibt man folgendes ein:
System.Diagnostics.Process.Start(System.Environment.SystemDirectory + "\\notepad.exe");

System.Environment.SystemDirectory gibt den Pfad des Systemverzeichnisses zurück (bei mir C:\Windows\system32).
Außerdem stehen vor \\notepad.exe zwei Backslashes, da "\" "escaped" werden muss.
Mit nur einem "\" würde der Compiler "\n" als Sonderzeichen ansehen, "\\" sagt ihm, hier ist wirklich ein normaler "\" gemeint.
Der Funktion Process.Start() können nach dem Pfad zum ausführbaren Programm auch noch Argumente übergeben werden, mit denen das Programm gestartet werden soll.
Soll beim obigen Beispiel der Editor mit der Textdatei Beispiel.txt, die bei mir auf dem Desktop liegt, aufgerufen werden, ist der Befehl wie folgt abzuändern:
System.Diagnostics.Process.Start(System.Environment.SystemDirectory + "\\notepad.exe", "C:\\Users\\Oliver\\Desktop\\Beispiel.txt");

Kommentare:

  1. Wenn man ein "@" vor "C:\..." setzt, müssen die Backslashs nicht doppelt eingegeben werden. ;)

    AntwortenLöschen