Я пытаюсь создать простую программу, которая регистрирует все нажатия клавиш, и мне трудно понять, как заставить ее работать. я не могу найти решение этой проблемы в любом месте.Python pyHook возвращает недопустимые символы (поля вместо символов)
Я использую pyHook, чтобы получить мои нажатия клавиш, и я создал функцию OnKeyboardEvent (событие), которая должна принимать событие ascii и преобразовывать его в char, чтобы помещать его в файл, но файл содержит только ящики, или то, что я предполагаю, являются некими недопустимыми символами. После честной отладки я понял, что распечатка самого символа ascii, а не преобразованного символа, все еще выводит странные прямоугольники. Любое понимание того, что происходит, очень ценится.
Эти части важных битов функции OnKeyboardEvent:
def OnKeyboardEvent(event):
if event.Ascii == 5:
sys.exit(0)
if event.Ascii != 0 or 8:
f = open(file, 'r+')
buffer = f.read()
f.close()
f = open(file, 'w')
keylogs = chr(event.Ascii)
print (keylogs)
Вот та часть, которая перехватывает клавиатуру
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
Я бегу для Windows 10 и открыть файл с помощью блокнота если это имеет какое-либо отношение к проблеме
Каково фактическое значение ascii для вывода (прежде чем вы назовете chr() на нем)? –
Я только что попробовал это снова, и, думаю, я ошибся в этом вопросе. Значения ascii на самом деле печатают числа, поэтому это должно означать, что я делаю что-то неправильно с chr() – jacobsskowronek