Страницы

Поиск по вопросам

среда, 22 января 2020 г.

pyHook ошибка с кириллицей

#python #python_3x #hook


Написал что-то на подобие простого кейлоггера, но столкнулся с проблемой: Программа
вылетает как только перехожу в другое окно, в названии или пути которого есть кириллица

С ошибкой 


  F:\Programs\Python36\python.exe F:/Files/MyProjects/KLPy/main.py
  
  TypeError: KeyboardSwitch() missing 8 required positional arguments:
  'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and
  'win_name'
  
  Process finished with exit code -1073740771 (0xC000041D)


Код программы

def OnKeyboardEvent(event):
    data = str(event.Key)
    f = open('Logfile.txt', 'a')
    f.write(data)
    f.close()

hook = pyHook.HookManager()
hook.KeyDown = OnKeyboardEvent
hook.HookKeyboard()
pythoncom.PumpMessages()


Как это пофиксить?
    


Ответы

Ответ 1



В pyHook не используется Unicode. В его форке pyhook_py3k добавлена поддержка Unicode. Поддержка Unicode выполнена в файле cpyHook.i, который в бинарной сборке скомпилирован в _cpyHook.xxx.pyd, поэтому так просто его не изменить. Варианты решения проблемы: скомпилировать pyhook_py3k под Ваши нужды; использовать Pywinauto (пример установки хуков на клавиатуру)

Комментариев нет:

Отправить комментарий