Wie Kornel sagt, gibt es OS-Level-Schutz von Prozessen von Benutzern isoliert. Aber im Allgemeinen gibt es keine Möglichkeit, den Prozess durch einen Benutzer mit der entsprechenden Berechtigung zu beenden. Und ein Benutzer hat die Berechtigung, Prozesse zu beenden, die als dieser Benutzer ausgeführt werden.
Auch wenn Sie es als SYSTEM ausführen wollten, konnten Sie diesen Prozess nicht zum Interagieren mit dem angemeldeten Benutzer verwenden. Sie müssten es als Dienst ausführen und es würde keine GUI haben. Sie könnten andere Ansätze versuchen, wie zum Beispiel das Laden einer DLL in einen Prozess wie Explorer.exe, die Benutzer nicht beenden, weil sie nicht wollen, aber das ist nur missbräuchlich.
Es wäre eine sehr schlechte Situation für Endbenutzer, wenn Entwickler nur Anwendungen schreiben könnten, die nicht beendet werden konnten. Wenn es sich um eine interne Anwendung handelt, überprüfen Sie möglicherweise Server Fault, um festzustellen, ob es mit Gruppenrichtlinien möglich ist.
Welchen legitimen Grund haben Sie dafür? –
Ich schlage eine Alternative vor: Haben Sie ein Status-Flag, das korrektes Herunterfahren anzeigt, und wenn Sie gestartet werden, ohne dass das Herunterfahren-Flag gesetzt ist, machen Sie ein Protokoll davon (oder größer). Und dann haben Sie einen Service, der Ihren Prozess überwacht und sicherstellt, dass er läuft. Wenn der Benutzer es tötet, starten Sie es einfach erneut. Dies ist es, was wir mit einem "muss laufen" -Prozess tun, mit dem sich der Benutzer herumschlagen kann. – mj2008
Ich habe einen Vorschlag: Bitte tu das nicht. –