Hi,
Versteh mich bitte nicht falsch, ich will nicht für C# werben!
Du kannst das ja ohne Probleme unter C++ verwenden...
Nur das Ändern der Priorität ist kein Schutz, das dein Programm nicht beendet wird! Es gibt ja nur an wie viel CPU-Leistung dein Programm benutzen kann. Wenn du es z.B. auf "Realtime" schaltest und eine Endlosschleife Programmierst tut NICHTS mehr und du kannst den PC Resetten, vorausgesetzt es läuft kein anderes Realtime Programm, denn das kann auch noch CPU-Leistung verwenden. Das gleiche ist dann wenn du alle Programme auf niedrig setzt und deins aus Normal lässt.
Ein Programm vor dem Beenden zu schützten geht nicht zu 100%. Was ich hier im Board mal gelesen habe und was sinnvoll ist, dein Programm als Thread von svhost zu registrieren.
Eine andere Möglichkeit wäre mit NT-Diensten. Wenn das Pause/Shutdown Event aufgerufen wird einfach ein extra Programm Starten, das deinen Dienst wieder Aktiviert. So hab ich das bisher immer gemacht. Wobei ich hier wieder anmerken muss, dass es mit .Net leichter geht NT-Dienste zu programmieren.
Andererseits wäre das auch mit Rootkis möglich, was aber sehr viel Komplizierter ist.
Theoretisch müssten die ersten 2 Methoden ausreichen, damit keiner, der es nicht soll schafft das Programm auszuschalten.
Gruß Chris