Bringen tut das folgendes: Du hast ein Steuerprogramm. Dieses nimmt alle Befehle entgegen und gibt am Ende den Befehl aus, zum abmelden. Dieses Steuerprogramm darf nicht einfach so abgeschossen werden. Deshalb ist es ein Dienst (höhere Rechte als der eingeschränkte Nutzer). Ab Windows Vista kann ein Dienst nicht mehr direkt mit dem Desktop kommunizieren, du brauchst also spezielle Anwendungen dafür. Diese Anwendungen können mit dem Dienst kommunizieren, entweder per
TCP oder per Pipe, wobei ich die Pipe bevorzugen würde.
Zum Abmelden: Da der Dienst dem User direkt keine Befehle geben kann, muss er in dem Kontext des Benutzers das Abmeldeprogramm starten. Dieses ist nichts anderes als Start->Ausführen->"logoff"->OK.
Zum Abbrechen: Hier hast du ein 2. Programm, welches mit dem Dienst kommuniziert. Dieses nimmt das PW entgegen und leitet dies per Pipe an den Dienst weiter. Der Dienst prüft und gibt ein OK/Falsch zurück. Bei OK wird der Abmeldetimer gestoppt, bei Falsch bleibt er am laufen.
Das ist die am sichersten arbeitende Struktur für dein Problem. Du musst nur dafür sorgen, dass deine Abmelden.exe nicht durch eine andere Datei ersetzt werden kann (Schreibrechte für den eingeschränkten Benutzer entziehen).
Bernhard