Собственно, главная цель - управлять программой на Python, висящей в трее, с помощью клавиш на клавиатуре. Подсмотрел метод отслеживания здесь -
Python: как отловить сочетания клавиш? Подредактировал код под себя:
import win32api
import win32con
import pythoncom
import pyHook
def OnKeyboardEvent(event):
if event.Key=='F4' and event.MessageName == 'key down':
print ("Клавиша нажалась")
x, y = win32api.GetCursorPos()
print (x,y)
return True
hm = pyHook.HookManager()
hm.KeyAll = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
В итоге, если окно с IDLE в фокусе - все работает как часы. В противном случае при нажатии нужной клавиши (F4) вылезает ошибка:
TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'
Подскажите, как исправить?