利用Python監(jiān)控兒子每天在電腦上面做了些什么(python監(jiān)控軟件)
繼打游戲、看視頻等摸魚行為被監(jiān)控后,現(xiàn)在打工人離職傾向也會被監(jiān) 控。
有網(wǎng)友爆料稱知乎正在低調(diào)裁員,視頻相關部門幾乎要裁掉一半。而在知乎裁員的討論區(qū),有網(wǎng)友表示企業(yè)安裝了行為感知系統(tǒng),該系統(tǒng)可以提前獲知員工跳槽念頭。
而知乎在否認了裁員計劃的同時,也聲明從未安裝使用過網(wǎng)上所說的行為感知系統(tǒng),今后也不會啟用類似軟件工具。
因為此事,深信服被推上風口浪尖,輿論關注度越來越高。
一時間,“打工人太難了”“毫無隱私可言”的討論層出不窮。
今天就帶大家領略一下怎么寫幾行 python 代碼,就能監(jiān)控電腦。
干貨主要有:
① 200 多本 Python 電子書(和經(jīng)典的書籍)應該有
② Python標準庫資料(最全中文版)
③ 項目源碼(四五十個有趣且可靠的練手項目及源碼)
④ Python基礎入門、爬蟲、網(wǎng)絡開發(fā)、大數(shù)據(jù)分析方面的視頻(適合小白學習)
⑤ Python學習路線圖(告別不入流的學習)
私信小編01即可獲取大量Python學習資源
監(jiān)控鍵盤
如果公司偷偷在我們的電腦上運行了一個后臺進程,來監(jiān)控我們的鍵盤事件,最簡單的 python 寫法大致是這樣的:
from pynput import keyboarddef on_press(key): print(f'{key} :pushed')def on_release(key): if key == keyboard.Key.esc: return Falsewith keyboard.Listener(on_press=on_press, on_release=on_release) as lsn: lsn.join()
隨意敲擊鍵盤,你就會從控制臺看到這樣的輸出:
代碼內(nèi)容就是兩個方法,一個是監(jiān)聽按鍵事件,另一個是監(jiān)聽退出事件——敲擊 ESC 按鍵后釋放就退出了。
監(jiān)控鼠標
如果還要監(jiān)聽鼠標事件,那么上這段代碼就行了:
from pynput import mousedef 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!')# 定義鼠標監(jiān)聽線程with mouse.Listener(on_click=on_click) as listener: listener.join()
這段代碼主要是監(jiān)聽鼠標的左右鍵點擊操作,運行之后操作鼠標,就可以看到控制臺打印如下結果:
細心的你一定會發(fā)現(xiàn),每次點擊事件,都打印了兩次。這是因為按下和松開都會觸發(fā)鼠標事件。
記錄監(jiān)控日志
鍵盤事件和鼠標事件都有了,是時候?qū)⒍呓Y合起來,把用戶的操作記錄到日志了。這里我們用 loguru 來記錄日志,這個 python 模塊我們之前的文章也講過。
整個代碼如下:
from pynput import keyboard, mousefrom loguru import loggerfrom threading import Thread# 定義日志文件logger.add('moyu.log')def on_press(key): logger.debug(f'{key} :pushed')def on_release(key): if key == keyboard.Key.esc: return False# 定義鍵盤監(jiān)聽線程def press_thread(): 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!') else: return False# 定義鼠標監(jiān)聽線程def click_thread(): with mouse.Listener(on_click=on_click) as listener: listener.join()if __name__ == '__main__': # 起兩個線程分別監(jiān)控鍵盤和鼠標 t1 = Thread(target=press_thread()) t2 = Thread(target=click_thread()) t1.start() t2.start()
運行之后,你就可以在同級目錄下的日志文件中,看到這樣的內(nèi)容了:
本文主要通過 pynput 這個 python 模塊講解一下怎么記錄鍵盤和鼠標的操作。這幾行簡單的代碼對于監(jiān)控輸入密碼之類的簡單操作可以使用,但是對于聊天記錄之類的復雜語句,你還需要針對日志用 NLTK 語言處理,才能復原你的聊天記錄。
學會了這個,你最想做的事情是什么?歡迎評論區(qū)留言!