Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Beenden eines Prozesses als eingeschränkter User verhind

  Alt 19. Jul 2005, 11:05
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 MSDN-Library durchsuchenOpenProcess 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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat