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

标签 python windows windows-10 keylogger pyhook

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

我正在使用 pyHook 来获取击键,并且创建了一个名为 OnKeyboardEvent(event) 的函数,该函数应该获取事件 ascii 并将其转换为 char 以便将其放入文件中,但该文件仅包含框,或者我认为是某种无效字符。经过相当多的调试后,我发现打印 ascii 字符本身而不是转换后的 char 仍然会输出奇怪的框。非常感谢任何有关正在发生的事情的见解。

这些是 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)

这是 Hook 键盘的部分

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

pythoncom.PumpMessages()

我正在运行 Windows 10 并使用记事本打开该文件(如果这与问题有关)

最佳答案

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

关于Python pyHook 返回无效字符(框而不是字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35283535/

相关文章:

python - 创建 AWS S3 存储桶时,region None 是什么意思?

python - Django 国际化 : recommended size and formatting for {% blocktrans %} blocks?

java - 在 Android 设备上运行 appium 脚本时遇到问题

c# - 捕获 MouseButtons.XButton1/2 用于向前/向后导航 Windows 10

c# - 适用于 Windows 10 UWP 的应用内日历

python - Matplotlib 绘制配对图?

python - 如何保存用户每天的进度?

c - 使用 winHttpApi 或套接字发送大文件是否明智?

c++ - 如何获取 GPU 信息?

c++ - 如何使用 V2 CP 示例自定义 Windows 10 凭据提供程序?