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