C# Nutzer am Verlassen der Anwendung hindern

Thaxll'ssillyia

Captain
Registriert
Dez. 2007
Beiträge
3.501
Hi Community,

folgendes Szenario:

Ich hab einen Win-10 Rechner, wo sich Kunden in meiner C#/WPF-Anwendung registrieren müssen. Die App läuft Fullscreen. Ich möchte verhindern, dass einer von den "ganz Schlauen" die Anwendung beendet (Alt+F4) und den Rechner runterfährt, Task-Manager öffnet oder weiß der Geier was...kurzum, meine Anwendung soll sich nur mithilfe des Windows-PWs oder nach Eingabe eines Codes beenden lassen.

Da ich denke ich mal im Jahr 2018 nicht der erste bin, der das Problem hat, wollte ich euch mal fragen. Die Google-Suche spuckt nur diverses Zeug aus, nicht so wirklich wo nach ich suche. Vermutlich fehlt mir grade das Schlüsselwort dazu.

Danke für jede Hilfe!

VG, Thax
 
Kiosk Modus ist das Zauberwort das du suchst, glaub in Windows 10 geht da sogar viel mit Bordmittel.
 
Was immer gerne vergessen wird beim Abfangen von Tastenkombinationen ist Windows Hilfen zu deaktivieren. Z.b. mehrmals hintereinander shift öffnet das "erleichterte Bedienung" Menü.
 
Du könntest einen globalen Keyhook schreiben. Der hängt sich in die user32.dll ein und fängt alle Tastendrücke ab.
Wenn also eine Kombination wie Alt+F4 kommt, kannst du die damit einfach "verschlucken".
Das erfordert aber auch ein bisschen Zeit zur Implementierung und ist keine Aufgabe von 5 Minuten ;)

Da ist es vielleicht sogar einfacher, deine bisherige Anwendung nach UWP zu portieren und dann den Windows Kiosk-Modus zu verwenden, sofern der was taugt.

Hier https://de.wikipedia.org/wiki/Kiosk-Modus#Microsoft_Windows_7
wären noch ein paar Tools aufgelistet. Vielleicht ist da was kompatibles dabei
 
Zuletzt bearbeitet:
Du kannst das close-Event abfangen und nicht weiter reichen. Hilft dir aber nichts wenn mit Ctrl+Alt+Entf der Taskmanager aufgerufen wird und der User darüber den Prozess killt
 
aroxx schrieb:
Was immer gerne vergessen wird beim Abfangen von Tastenkombinationen ist Windows Hilfen zu deaktivieren. Z.b. mehrmals hintereinander shift öffnet das "erleichterte Bedienung" Menü.

Selbst, wenn man alle Tastenkombinationen, die irgendwas machen können, abfängt: Ctrl-Alt-Del kann man nicht abfangen. Deshalb sollte man dafür die entsprechenden Windows features benutzen, statt irgendwas selbst zu wursteln.
 
Also erste Idee: Events abfangen und den aktuellen Windows-Benutzer in den Rechten bezüglich Task-Manager einschränken?
 
iamunknown schrieb:
Du kannst das close-Event abfangen und nicht weiter reichen. Hilft dir aber nichts wenn mit Ctrl+Alt+Entf der Taskmanager aufgerufen wird und der User darüber den Prozess killt

Auch das Event kannst Du über eine Form-Klasse abfangen. Sofern es eine UI-Anwendung ist. Selbst wenn es beendet wird, kannst die Anwendung einfach neustarten.
 
Zurück
Oben