Python обнаруживает нажатия клавиш, отправленные в другое приложение - PullRequest
0 голосов
/ 20 января 2010

У меня есть программа на Python, которая отправляет нажатия клавиш в другое приложение, используя SendKeys. Некоторые нажатия клавиш, однако, должны быть отправлены в приложение после некоторой обработки (которая занимает неизвестное количество времени). До сих пор я должен был сообщить приложению Python, что обработка была завершена Alt + Tabbing обратно в окно DOS и нажал Enter. Мне бы хотелось иметь комбинацию клавиш (Shift + F1 или что-то в этом роде), которую я могу нажать в принимающем приложении, которое сигнализирует о продолжении работы программы Python без необходимости переключаться обратно в окно DOS. Как бы я сделал так, чтобы я мог обнаружить нажатия клавиш в Python, даже если фокус находится на другом окне?

1 Ответ

0 голосов
/ 20 января 2010

Посмотрите на pyHook .

Позволяет подключать клавиатуру:

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()
...