Um es zuverlaessig zu machen gibt es so genannte "Watchdogs". Die APIs fuers Schliessen zu hooken ist AFAIC nicht ohne weiteres moeglich, also geht man einen anderen Weg.
Du hast deine Anwendung (A) die etwas bestimmtes macht. Nun startest du darin einen Thread, welches prueft, ob ein bestimmtes Programm (B) laeuft. Wenn es nicht gestartet ist, dann hoch damit. Dieser Check sollte ca. 1 mal pro Sekunde gemacht werden: also einmal die PID holen und dann nur noch einen Aufruf von
OpenProcess machen. Schlaegt der fehl, startest du schnellstens Programm B.
Programm B hat nun die Aufgabe, A zu ueberwachen. Dies geschieht gleich wie oben, d.h. wenn A nicht laeuft, wirds gestartet. So, wenn du jetzt einen der Prozesse ueber den Taskmanager abschiesst, wird der andere Prozess diesen sofort wieder starten.
Schoenere Moeglichkeit das Beenden der Anwendung zu verhindern: Je nach Sinn und Zweck des Programms kannst du dieses als Dienst implementieren. Dazu noch ein Panel, damit gearbeitet werden kann. Ein Normalbenutzer kann keine Dienste beenden, also bist du damit sicher
Greetz
alcaeus