【问题标题】:Python pyHook returning invalid characters (boxes instead of characters)Python pyHook 返回无效字符(框而不是字符)
【发布时间】:2016-02-09 03:46:36
【问题描述】:

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

我正在使用 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)

这里是挂键盘的部分

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

pythoncom.PumpMessages()

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

【问题讨论】:

  • 输出的实际 ascii 值是多少(在调用 chr() 之前)?
  • 我刚刚又试了一次,我想我在这个问题上弄错了。 ascii 值实际上是打印出数字,所以这一定意味着我在 chr() 上做错了

标签: python windows windows-10 keylogger pyhook


【解决方案1】:

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

【讨论】:

  • 但不区分大小写,不检测特殊字符符号。任何解决方案。
猜你喜欢
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 2014-10-26
  • 1970-01-01
  • 2020-10-15
  • 2019-09-15
相关资源
最近更新 更多