2010-07-26 14 views
11

Voglio impostare un tasto di scelta rapida globale in python 2.6 che ascolta la scorciatoia da tastiera Ctrl + D o Ctrl + alt + D sulle finestre, si prega di aiutarmiSet hotkey globale con Python 2.6

+0

Questo argomento è anche coperto [qui] [1], tuttavia utilizzando Python 3. [1]: http: // StackOverflow. it/questions/16615087/python-how-to-create-a-global-hotkey-on-windows-con-3-argomenti/24654577 # 24654577 – Maxxim

risposta

3

Il RegisterHotKey metodo della classe wx.Window è quello che stai cercando - come dicono i documenti,

registri un hotkey di sistema. Ogni ora l'utente preme il tasto di scelta rapida registrato qui, questa finestra sarà ricevere un evento hotkey. Sarà ricevere l'evento anche se l'applicazione è in background e non ha il focus di input perché l'utente sta lavorando con un'altra applicazione . Per associare una funzione di gestore di eventi a questo tasto di scelta rapida, utilizzare EVT_HOTKEY con un ID uguale a hotkeyId. Restituisce Vero se il tasto di scelta rapida è stato registrato con successo .

Quindi, fare un'istanza di `wx.Window, registrare il tasto di scelta rapida che si desidera con questo metodo, e, eventualmente, fare una PushEventHandler se ypu'd piuttosto gestire l'evento (s) in un gestore di eventi separati, piuttosto che in la finestra stessa (quest'ultima è l'impostazione predefinita).

C'è qualcos'altro in questa procedura che non ti è del tutto chiaro ...? In tal caso, modifica la tua domanda per aggiungere ulteriori problemi che potresti avere!

+0

Dal momento che RegisterHotKey accetta chiavi da win32con, la soluzione non funzionerà per lui perché ha bisogno VK_ che è assente in win32con! – Romeno

0

Se vuoi i tasti di scelta rapida nel tuo programma wxPython (che presumo tu faccia a causa del tag wxPython), allora dovresti usare un wx.AcceleratorTable.

6

Suggerisco pyhk. Permette la registrazione globale dei tasti di scelta rapida in python e viene fornito con esempi e documentazione. Pyhk si basa su pyhook.

registrazione tasti di scelta rapida è semplice come:

pyhk.addHotkey(SomeHotkey,SomeFunction) 
+0

Ehi, quindi quella soluzione funzionerà solo per Windows, no? – Romeno

+0

Sì, solo Windows poiché si basa su pyhook. – schurpf