Python Read()方法不适用于键盘记录器

Python Read()方法不适用于键盘记录器,python,io,Python,Io,我正在尝试编写一个键盘记录程序来记录一些用户的输入,并通过其他表单自动化他的书写(因此他只需要写一次,就会有一个包含他所写内容的文件通过其他表单粘贴)。 我之所以必须使用键盘记录器,是因为表单的性质似乎不允许任何其他形式的非鼠标-键盘驱动的自动化I/O 因此,在网络上查找一下,我发现了pyHook模块,到目前为止,我已经能够做到: import pythoncom, pyHook import sys f = open('keylogger', 'w+') def OnKeyboardEve

我正在尝试编写一个键盘记录程序来记录一些用户的输入,并通过其他表单自动化他的书写(因此他只需要写一次,就会有一个包含他所写内容的文件通过其他表单粘贴)。 我之所以必须使用键盘记录器,是因为表单的性质似乎不允许任何其他形式的非鼠标-键盘驱动的自动化I/O

因此,在网络上查找一下,我发现了pyHook模块,到目前为止,我已经能够做到:

import pythoncom, pyHook
import sys

f = open('keylogger', 'w+')

def OnKeyboardEvent(event):
    if event.Key == 'F12':
        f.close()
        sys.exit()
    if event.Key == 'Space':
        f.write(" ")
        return True
    if event.Key == 'Return':
        f.write("\n")
        return True
    if event.Key == 'Rshift' or event.Key == 'LShift':
        return True
    if event.Key == 'Oem_4':
        f.write("?")
        return True
    if event.Key == 'Oem_Period':
        f.write(".")
        return True
    if event.Key == 'Back':
        a = f.read()
        a = a[:-1]
        f.write(a)
        return True
    f.write(event.Key)
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
现在我在“OnKeyboardEvent”函数的特定方面遇到了一个问题:

if event.Key == 'Back':
    a = f.read()
    a = a[:-1]
    f.write(a)
    return True
事实上,我想在这里做的是,当用户按下“后退”键删除错误时,应该先删除文件中写入的内容,然后删除最后一个字符。然而,变量
a
产生了一个非常奇怪的结果(这是一个很长的加密字符串,我不能粘贴在这里,但它足以尝试键盘记录器一次来查看。这仅仅是它的开始:
@sÿd l m Z e d k r4 d¨Z eƒ
)。 知道这是怎么回事吗?我错在哪里了


附加说明:按下键“F12”可禁用键盘记录器,该键用于关闭软件,用户将在软件准备就绪时写入要通过其他软件发送的文本。

此代码的用途是什么?很抱歉,我不得不问,因为我不赞成不道德地使用这种代码。@AlexThornton,我完全理解并同意你的观点,这就是为什么我在提问之前就在顶部写了解释;)不管怎么说,原因是我的老板会写一份报告,他将不得不在许多“聊天”中这样做。不幸的是,这些都是受保护的软件(彭博社、路透社等),因此无法“破坏”它们并接收输入文本以通过其他软件发送。到目前为止,我们被建议的唯一方法是:1)创建一个键盘记录器来记录他键入的内容;2) 将他写过一次的文本存储到一个文件中;3) 阅读文件,并通过鼠标驱动的脚本将输入插入所有其他聊天室。现在我们正处于第一步。我只是没有完全理解它。非常感谢。