Страницы

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

воскресенье, 10 марта 2019 г.

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

Написал что-то на подобие простого кейлоггера, но столкнулся с проблемой: Программа вылетает как только перехожу в другое окно, в названии или пути которого есть кириллица
С ошибкой
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()
Как это пофиксить?


Ответ

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

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

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