>백엔드 개발 >파이썬 튜토리얼 >Python으로 컴퓨터 모니터링 프로그램 작성

Python으로 컴퓨터 모니터링 프로그램 작성

WBOY
WBOY앞으로
2023-04-11 21:46:331798검색

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


키보드를 마음대로 탭하면 The에서 제어됩니다. 스테이션에서 다음 출력을 확인했습니다.

Python으로 컴퓨터 모니터링 프로그램 작성

코드의 내용은 두 가지 방법입니다. 하나는 주요 이벤트를 수신하는 것이고, 다른 하나는 종료 이벤트를 수신하는 것입니다. -크기: 상속; 배경색: rgba(0, 0, 0, 0.06); 테두리 반경: 6px; 오버플로 랩: 중단 단어: 0px ;"> ESC 종료하려면 눌렀다가 떼세요. 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()


这段代码主要是监听鼠标的左右键点击操作,运行之后操作鼠标,就可以看到控制台打印如下结果:

Python으로 컴퓨터 모니터링 프로그램 작성

细心的你一定会发现,每次点击事件,都打印了两次。这是因为按下和松开都会触发鼠标事件。

记录监控日志

键盘事件和鼠标事件都有了,是时候将二者结合起来,把用户的操作记录到日志了。这里我们用 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()


运行之后,你就可以在同级目录下的日志文件中,看到这样的内容了:

Python으로 컴퓨터 모니터링 프로그램 작성

总结

本文主要通过 ​​pynput​

마우스 모니터링

마우스 이벤트를 계속 모니터링하려면 다음 코드를 추가하세요. 🎜rrreee🎜이 코드는 주로 마우스의 왼쪽 및 오른쪽 클릭 동작을 모니터링하는 데 사용됩니다. 실행 후 마우스를 조작할 수 있습니다. 다음과 같이 콘솔 인쇄를 확인하세요. 결과: 🎜🎜Python으로 컴퓨터 모니터링 프로그램 작성🎜🎜조심하면 각 클릭 이벤트가 두 번 인쇄되는 것을 볼 수 있습니다. 누르거나 떼는 것이 모두 마우스 이벤트를 트리거하기 때문입니다. 🎜🎜모니터링 로그 기록🎜🎜이제 키보드 이벤트와 마우스 이벤트가 있으니, 이 둘을 결합하여 사용자 작업을 로그에 기록할 차례입니다. 여기서는 loguru 모듈을 사용하여 로그를 기록합니다. 🎜🎜전체 코드는 다음과 같습니다. 🎜rrreee🎜실행 후 동일한 디렉터리의 로그 파일에서 다음 내용을 확인할 수 있습니다. 🎜🎜Python으로 컴퓨터 모니터링 프로그램 작성🎜🎜요약🎜🎜이 글은 주로​​pynput​​ 이 Python 모듈은 키보드 및 마우스 작업을 기록하는 방법을 보여줍니다. 이러한 간단한 코드 줄은 간단한 입력 모니터링에 적합하지만 채팅 기록과 같은 복잡한 명령문의 경우 채팅 기록을 복원하려면 로그에 NLTK 언어 처리를 사용해야 합니다. 🎜🎜물론, 여기서는 기술적 타당성에 대해서만 논의하고 있습니다. 타인의 사생활을 침해하는 행위는 하지 마시기 바랍니다. 게다가 이 코드만으로도 프로그램 녹화 작업이 있다는 것을 다른 사람들이 한눈에 알아차릴 수 있을 텐데요...🎜

위 내용은 Python으로 컴퓨터 모니터링 프로그램 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제