Beliebiges WindowsProgramm per C# beenden/starten?

Hi,

gibt es unter C# eine Möglichkeit ein anderes Programm zu beenden? Ich möchte mit C# ein automatisches Script basteln, dass eine Rahmenbedingung prüft und falls diese nicht mehr zutrifft automatisch ein laufendes Programm beendet/abschießt. Das andere Programm ist ein ganz normales Windowsprogramm was im Taskmanager zu sehen ist. Ich müsste C# also irgendwie klar machen welchen Prozess (exe) es killen soll.

Desweiteren würde mich dann auch noch interessieren ob ich auch ein beliebiges Programm starten kann?

Laufen habe ich hier WinXP Prof. Sp1
Danke.

Gruß
Pfanni

Hi

Guck Dir mal „System.Diagnostics.Process“ an.
Für das Finden eines Prozess kannst Du eines der Statischen Methoden aufrufen.

Zum killen brauchst Du ein Objekt.

Gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi

Guck Dir mal „System.Diagnostics.Process“ an.
Für das Finden eines Prozess kannst Du eines der Statischen
Methoden aufrufen.

Zum killen brauchst Du ein Objekt.

Gruss

Danke frü den Tipp mit der Klasse. Hab mich mal etwas durch MSDN geklcikt und es auch hin bekommen. Schieße den Prozess nun per Kill() aus dem System. Normales Schließen des Prozesses hat nicht funktioniert.

Pfanni

Danke frü den Tipp mit der Klasse. Hab mich mal etwas durch
MSDN geklcikt und es auch hin bekommen. Schieße den Prozess
nun per Kill() aus dem System. Normales Schließen des
Prozesses hat nicht funktioniert.

sag mal kennst du eine möglichkeit ihn normal zu schließen? ich hab scho so einiges probiert (mach im Prinzip das gleiche wie du), aber bisher kann ich andere prozesse auch nur über kill aus dem speicher werfen… schön is ja das nicht wirklich. kennt wer eine schöne Lösung? zB dass der Benutzer noch zeit zum speichern hat. ein Timeout beim beenden wär auch nicht schlecht, muss aber nicht sein.

mfg
Alex

sag mal kennst du eine möglichkeit ihn normal zu schließen?
ich hab scho so einiges probiert (mach im Prinzip das gleiche
wie du), aber bisher kann ich andere prozesse auch nur über
kill aus dem speicher werfen… schön is ja das nicht
wirklich. kennt wer eine schöne Lösung? zB dass der Benutzer
noch zeit zum speichern hat. ein Timeout beim beenden wär auch
nicht schlecht, muss aber nicht sein.

Hi Alex,

ich hab das folgendermaßen probiert. Gefunzt hat bei dieser Firewall aber nur „close[0].Kill();“. Nen Timeout ist mir leider nicht bekannt.

Process[] close = Process.GetProcessesByName(„outpost“);

close[0].CloseMainWindow();
close[0].Close();

Gruß
Pfanni

ich hab das folgendermaßen probiert. Gefunzt hat bei dieser
Firewall aber nur „close[0].Kill();“. Nen Timeout ist mir
leider nicht bekannt.

Process[] close = Process.GetProcessesByName(„outpost“);

close[0].CloseMainWindow();
close[0].Close();

thx…