2010-07-26 14 views
11

Ich möchte Setup eine globale Hotkey in Python 2.6, die ctrl + D oder ctrl + alt + D auf Fenster auf die Tastenkombination hört, bitte helfen Sie mirSet globalen Hotkey mit Python 2.6

+0

dieses Thema auch [hier] [1] abgedeckt ist, jedoch mit Python 3. [1]: http: // Stackoverflow. com/questions/16615087/python-how-to-create-a-global-hotkey-on-windows-with-3-arguments/24654577 # 24654577 – Maxxim

Antwort

9

Tim Golden Website ist eine nützliche Ressource für Win32 verwandte Programmierung in Python. Insbesondere sollte dieses Beispiel helfen:

3

Die RegisterHotKey Methode der wx.Window Klasse ist das, was Sie suchen - wie die Docs sagen,

Register ein Systemweiter Hotkey. Jede Zeit, die der Benutzer den hier registrierten Hotkey drückt, wird dieses Fenster ein Hotkey-Ereignis erhalten. Es wird das Ereignis empfangen, auch wenn die Anwendung im Hintergrund ist und nicht den Eingabefokus hat, weil der Benutzer mit einigen anderen Anwendung arbeitet. Um eine Event-Handler-Funktion an diesen Hotkey zu binden, verwenden Sie EVT_HOTKEY mit der ID hotkeyId. Rückgabewerte Wahr, wenn der Hotkey erfolgreich registriert wurde .

also eine Instanz von `wx.Window machen, registrieren Sie den Hotkey Sie mit dieser Methode wollen, und möglicherweise ein PushEventHandler tun, wenn ypu'd eher die Ereignisbehandlung (en) in einem separaten Event-Handler, anstatt in das Fenster selbst (letzteres ist der Standard).

Gibt es noch etwas in diesem Verfahren, das Ihnen nicht ganz klar ist ...? Wenn ja, bitte bearbeiten Sie Ihre Frage, um weitere Probleme hinzuzufügen, die Sie möglicherweise haben!

+0

Da RegisterHotKey Schlüssel von win32con akzeptiert, wird diese Lösung nicht für ihn arbeiten, weil er braucht VK_ was in Win32con fehlt! – Romeno

0

Wenn Sie Hotkeys in Ihrem wxPython-Programm wollen (was ich aufgrund des wxPython-Tags vermute), sollten Sie eine wx.AcceleratorTable verwenden.

6

Ich schlage vor, pyhk. Es ermöglicht die globale Hotkey-Registrierung in Python und enthält Beispiele und Dokumentation. Pyhk baut auf pyhook.

Hotkey Registrierung ist so einfach wie:

pyhk.addHotkey(SomeHotkey,SomeFunction) 
+0

Hey, so dass diese Lösung nur für Windows funktioniert, nicht? – Romeno

+0

Ja, nur Windows, da es auf Pyhook basiert. – schurpf