Seite 1 von 1

Tastenkombinationen abfangen (Alt - F4)

Verfasst: Montag 17. März 2008, 20:40
von IgelaufReisen
Hallöchen liebe Community!
Ich wollte fragen, ob es möglich ist, die Tastenkombination Alt-F4 abzufangen, sodass sich das Fenster nicht schließt, sondern irgendwas anderes passiert.
Parallel auch anwendbar für Strg-Alt-Entf oder Ähnliches.
Eine Prüfung, ob Alt-F4 gedrückt wird, hab ich schon hingekriegt mit bind, aber weiter komm ich leider nicht.

Danke im Vorraus
Der Igel

Verfasst: Dienstag 18. März 2008, 11:21
von numerix
Ich denke nicht, dass es eine allgemeine Lösung gibt - lasse mich aber gerne auch vom Gegenteil überzeugen.

Bestimmte Shortcuts fängt das Betriebssystem bzw. der Windowmanager einfach ab. Je nach Betriebssytem/Windowmanager kann man dort ja einiges einstellen.
Um zu vermeiden, dass ein bestimmter Shortcut abgefangen wird, müsste man ihn ganz aktivieren. Dann sollte die Bindung mit Tkinter funktionieren.

Für den Sonderfall <Alt>-<F4> kenne ich allerdings eine Lösung:

Code: Alles auswählen

import Tkinter as tk

def onAltF4():
    # Mach noch irgendetwas
    label["text"] = "In 3 seconds I'm gone ..."
    root.after(3000,quitnow)

def quitnow():
    root.quit()
    root.destroy()

root = tk.Tk()
label = tk.Label(root,text="Close the window, please!")
label.pack()
root.wm_protocol("WM_DELETE_WINDOW",onAltF4)
root.mainloop()
Das funktioniert auch beim Klick auf [X].

Edit: Statt wm_protocol() genügt auch protocol().

Verfasst: Dienstag 18. März 2008, 20:53
von IgelaufReisen
Cool.
Das funzt schon mal. Aber ich würd nun auch gern den Druck auf die WIN-Tasten oder die Kombi Strg-Alt-Entf abfangen. Eben komplett unterbinden, dass das Fenster auf ne andere Art zugemacht werden kann, als ich es erlaube.

Verfasst: Mittwoch 19. März 2008, 15:13
von HWK
WIN-Tasten legt nahe, dass es um Windows geht. Bei Windows XP ist aber Strg-Alt-Entf wohl nicht abzufangen: http://www.c-plusplus.de/forum/viewtopi ... -is-0.html und http://www.c-plusplus.de/forum/viewtopic.php?t=39146
MfG
HWK