C# puefen ob Pozess reagiert

ja klar wird das überprüft. Hab im debugger alles durchgeguckt. Das wird schon alles richtig erkannt (also fenstertitel und so zeug stimmt alles) aber halt das responding is auch noch nach nem Absturz komischweise auf "true"
 
wie gesagt, es könnte ja daran liegen, dass dein Programm zu früh den Check macht, wo das Programm noch nicht abgestürzt war!
 
ich glaub du kannst mir soviel schon zutrauen dass ich das richtig hinbekomm.
Programm Crashen lassen >> mein überprüfer laufen laassen ...
das geht alles irgendwie nicht
Das Programm landet ja nich in nem "Not responding" sondern in nem "has stopped workling" was windows anscheined als Unterschied sieht.
 
aah da siehst du doch! Natürlich macht es einen Unterschied ob ein Programm nicht reagiert oder gar aufgehört hat zu arbeiten. Das heisst, dass du während des Crash die überprüfung machen musst anstatt erst danach!

Es sollte aber für dich doch egal sein, ob der nicht reagiert oder aufgehört hat zu arbeiten!
 
waehrend des crashes?
versteh nich wie dus meinst.. hast du dir meinen screenshot angegguckt?
der crash selbst dauert ja nur ein bruchteil von ner millisekunde wie soll ich zu dem zeitpunkt ne ueberpruefung machen?
oder hab ich das jetzt was falsch verstanden?

Klar macht das fuer mich keinen unterschied aber fuer C# anscheinend
 
Sooo hier ist die MSDN Seite wo du alle Eigenschaften des Prozesses rauslesen kannst!

ich würde mal sagen, beim Start des Programms pickst du dein Prozess raus, dann überprüfst du ob der einen Event auslösen kann, Stichwort : CanRaiseEvents und dann fortfährst oder Fehler mittels exception oder MessageBox oder was aus immer herausspuckst!
Danach den Event aufbaust, wie z.B.:

Code:
    // Handle Exited event and display process information.
    private void myProcess_Exited(object sender, System.EventArgs e)
    {

        eventHandled = true;
        Console.WriteLine("Exit time:    {0}\r\n" +
            "Exit code:    {1}\r\nElapsed time: {2}", myProcess.ExitTime, myProcess.ExitCode, elapsedTime);
    }


und dann entscheidest was geschehen soll... Du hast sogar einen ExitCode, wo du sehen kannst wie der Prozess beendet wurde :D ;)

http://msdn.microsoft.com/en-us/library/76yt3c0w.aspx
 
Zurück
Oben