Domanda

Ho un programma Python che invia sequenze di tasti ad un'altra applicazione che utilizza SendKeys. Alcuni dei tasti, tuttavia, deve essere inviato alla applicazione dopo che fa alcune elaborazioni (che richiede una quantità di tempo indeterminato). Finora ho dovuto lasciare che l'applicazione Python conosce il trattamento era finito con Alt + Tabbing di nuovo alla finestra DOS e premendo Invio. Mi piacerebbe avere una combinazione di tasti (Shift + F1 o qualcosa di simile), che posso colpire nell'applicazione ricevente che segnala il programma Python di continuare senza di me dover tornare alla finestra DOS. Come faccio a fare in modo che in grado di rilevare le battiture in Python, anche se l'attenzione è rivolta un'altra finestra?

È stato utile?

Soluzione

Dai un'occhiata alla pyHook .

Permette tastiera aggancio:

import pythoncom, pyHook 

def OnKeyboardEvent(event):
  print 'MessageName:',event.MessageName
  print 'Message:',event.Message
  print 'Time:',event.Time
  print 'Window:',event.Window
  print 'WindowName:',event.WindowName
  print 'Ascii:', event.Ascii, chr(event.Ascii)
  print 'Key:', event.Key
  print 'KeyID:', event.KeyID
  print 'ScanCode:', event.ScanCode
  print 'Extended:', event.Extended
  print 'Injected:', event.Injected
  print 'Alt', event.Alt
  print 'Transition', event.Transition
  print '---'

# return True to pass the event to other handlers
  return True

# create a hook manager
hm = pyHook.HookManager()
# watch for all mouse events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top