Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 21.06.2004, 21:28 Titel: [Win32] Sperren von ALT-Key Combos(z.B. ALT+F4 usw.) |
|
|
Frage:
Ich möchte in meinem Programm dass der Anwender nicht einfach per ALT+F4 das Programm beenden kann oder per ALT+TAB einfach in eine andere Anwendung springt. Was kann ich tun?
Ich bin so verzweifelt!
Anmerkung vom Moderator: Manchmal wünscht sich sowas ein Prorammierer, wenn er nicht will dass seine Fullscreen-Anwendung ohne weiteres beendet werden kann, bzw. um zu verhindern, dass das Programm den Focus verliert(->Stichwort lost Devices). In einer "normalen" Fenster-Andwendung sollte man als Programmierer jedoch Vernunft zeigen und so etwas unterlassen.
Antwort:
Um die ALT-Combos zu sperren muss man sozusagen die Windowsnachrichten abfangen. Dazu muss man in seiner Windows-Prozedur(Callback Funktion) folgendes in der obligatorischen switch Schleife vorsehen:
Code: | case WM_SYSKEYDOWN:
case WM_SYSKEYUP:
case WM_SYSCHAR: |
Das sind Nachrichten die eigentlich für Windows selbst als für die Anwendung selbst bestimmt sind. Solange der Focus auf eben jener Anwendung liegt, werden ALT-Tastenkombinationen ignoriert. SOllte man jedoch mit der Maus den Focus auf ein anderes Fenster/Anwendung setzen, funktionieren diese jedoch weiterhin, nicht dass jemand hier denkt man würde hier "globale Nachrichten" abfangen. Die Nachrichten sind einfach im Regelfall für die Anwendung unwichtig. |
|