C# Prozess explorer.exe beenden

Thaxll'ssillyia

Commander
Dabei seit
Dez. 2007
Beiträge
2.885
Hallo Community!

Ich möchte Worms Armageddon New Edition (WANE) gern unter Win7 zum Laufen bekommen, dazu muss ich den Prozess explorer.exe beenden. Erst dann läuft das Spiel.

Nun wollte ich mir ein Prog schreiben, welches in einer Form 2 Buttons enthält, einer für "WA NE starten" (beeinhaltet das Beenden von explorer.exe und das Starten von WANE) sowie einer für Prozess wiederherstellen (nach Beenden von WANE sowie explorer.exe wieder starten).

Der Zugriff auf den Prozess und das Beenden von diesem ist kein Problem, allerdings startet er sich dann sofort wieder neu. Liegt vermutlich an Visual Studio 2008 oder dass ich eine Form verwende.
Wie kann ich dass umgehen?

Mein Code bisher:

Code:
        private void button1_Click(object sender, EventArgs e)
        {
            Process[] processes = Process.GetProcessesByName("explorer");
            processes[0].Kill();            
        }
Vielen Dank für Hilfe!

Gruß Thax
 

DAASSI

Lt. Commander
Dabei seit
Apr. 2009
Beiträge
1.889
machs einfach mit ner batch datei, is vieeel kürzer ;)
etwa so:
@echo off
taskkill /IM explorer.exe /F
cd "C:\Program Files (x86)\Microsoft Games\Age of Empires II\age2_x1\"
age2_x1.exe
pause
start explorer.exe
close

des ist eine solche anwendung für AOE
 

Thaxll'ssillyia

Commander
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
2.885
hey danke für die schnelle Antwort, trotzdem paar Fragen dazu:

taskkill /IM explorer.exe /F
cd "C:\Program Files (x86)\Microsoft Games\Age of Empires II\age2_x1\"
Wie ist das eigentlich? Wenn explorer.exe gestorben ist, kann der immer noch Dateipfade öffnen/Anwendungen starten etc.? Oder ist der Prozess dafür gar nicht zuständig?

Was ist mit Pause gemeint?
Ich wollte es ja entweder so, dass er nach beenden des Spiels den prozess wieder startet oder manuell nach dem Beenden der Anwender eine Batch/exe aufrufen muss.
 

HLK

Captain
Dabei seit
Feb. 2009
Beiträge
3.465
bei pause, pausiert er bis du ihm durch eine beliebige taste den "weiter" befehl gibst.
und dann wird die explorer.exe wieder gestartet.

ohne explorer.exe was zu starten ist kein dring, musste halt über cmd bzw. ausführen machen.
 

Thaxll'ssillyia

Commander
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
2.885
bei pause, pausiert er bis du ihm durch eine beliebige taste den "weiter" befehl gibst.
und dann wird die explorer.exe wieder gestartet.
mhh, ingame drück ich ja ständig tasten...
Gibt es auch eine Möglichkeit, erst beim Beenden des Spiels den Prozess wiederherzustellen?
Denn ich weiß ncith ob das geht, den Prozess während der Laufzeit von WANE wieder zu starten...

Gruß Thax
 

Sturmel

Ensign
Dabei seit
März 2009
Beiträge
161
Es geht auch per csharp, in dem du eben taskkill startest:

Code:
System.Diagnostics.Process.Start("taskkill.exe", " /f /im explorer.exe");
 

DAASSI

Lt. Commander
Dabei seit
Apr. 2009
Beiträge
1.889
also nochmal zur batchdatei: die wird ja mit dem normalen editor erstellt und einfach unter xyz.bat gespeichert. du rufst die datei auf, sie öffnet sich, explorer.exe geht aus und worms startet. du spielst worms, bist dann fertig und schließt es. dann siehst du die kommandozeile, klickst sie an drückst irgendwas und explorer.exe startet wieder und windows läuft weiter wie gewohnt. nur alles explorerfenster wurden geschlossen, die musst du wieder neu aufmachen
 
C

claW.

Gast
au au au, wenn man schon das .net unter seinen füßen hat, dann doch bitte korrekt:
Code:
Process[] p = Process.GetProcesses();
for( int i = 0; i < p.Length; i++ )
  if( p[i].ProcessName.Equals( "explorer" ) )
    p[i].Close();
alternativ mit kill() arbeiten, je nachdem ob sich der explorer mit close() beinflussen lässt oder nicht.
 
Top