Python pyHook返回无效字符(框而不是字符)

时间:2016-02-09 03:46:36

标签: python windows windows-10 keylogger pyhook

我正在尝试制作一个记录所有按键的简单程序,而我很难弄清楚如何让它工作。我似乎无法在任何地方找到解决这个问题的方法。

我正在使用pyHook来获取我的键击并且我创建了一个名为OnKeyboardEvent(event)的函数,它应该将事件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并使用记事本打开文件

1 个答案:

答案 0 :(得分:1)

好吧,试试event.KeyID而不是event.Ascii。不确定这是否是最佳解决方案,但对我有用。