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