Laden...

Externes Prozess starten

Erstellt von f.ritz vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.998 Views
f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren
Externes Prozess starten

Hallo!

Meine Frage ist, ob man in C# ähnlich wie in JAVA externe Prozesse(z.B: *.exe-Dateien) starten kann?

Wenn ja:

  • welche Namespaces gibt es dafür?
  • gibt es auch Möglichkeit Windows-Dienste zu starten/stopen?
N
4.644 Beiträge seit 2004
vor 19 Jahren
System.Diagnostics.Process.Start("iexplore.exe");

Für Windowsdienste kannst Du Dir mal die Klasse ServiceController anschauen.

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren

Wie sieht es aus wenn ich ein Programm starten möchte das aus mehreren Wörtern besteht und diese mit Leerzeichen getrennt sind, z.B System.Diagnostics.Process.Start("Ein Programm.exe"); kann ich so nicht starten.

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Versuch es mal so:

System.Diagnostics.Process.Start("Ein\ Programm.exe");

Du musst das Leerzeichen quoten, ansonsten wird nämlich "Programm.exe" als Parameter von "Ein" behandelt.

Code-Hacker

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren

Hi!

Dabei krieg ich aber von Visual Studio folgende Fehlermeldung "Nicht erkannte Escape-Folge"!

Original von Code-Hacker
Hi!

Versuch es mal so:

System.Diagnostics.Process.Start("Ein\ Programm.exe");  

Du musst das Leerzeichen quoten, ansonsten wird nämlich "Programm.exe" als Parameter von "Ein" behandelt.

Code-Hacker

N
4.644 Beiträge seit 2004
vor 19 Jahren
System.Diagnostics.Process.Start(@"C:\DeinPfad\Deine Anwendung.exe");

Das hättest Du aber auch selbst rausfinden können. 😉

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Mein Gott ist das ein Schrott. Naja, die Eingabeaufforderung von Windows bzw. DOS kann man allgemein knicken, mal abgesehen davon das Verzeichnisse mit einem Backslash getrennt werden....

Code-Hacker

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren

Hallo!

Moment mal, iregendwie ist hier was durcheinnander gekommen, die Frage war wieso ich eine Fehlermeldung kriege beim Aufruf von

System.Diagnostics.Process.Start("Ein\ Programm.exe");

Ich möchte ja kein Pfad angeben!

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Weil du ein Leerzeichen nicht quoten kannst, es müsste glaube ich so aussehen:
"Mein\ Programm.exe"
Dann bekommt die Eingabeaufforderung ein \ übergeben, dann funktionierts evtl. Also wenn ich in der Eingabeaufforderung in einen Ordner mit Leerzeichen wechsel und ausnahmsweise mal kein * benutze, weil der Name zu lang ist, wird muss das auch mit einem \ gequoted werden.

Code-Hacker