Python侦听鼠标键盘事件并把记录写入本地文本

背景

一个人一天键盘要敲多少个键?一个人一天操作鼠标次数是多少?这显然不是我们想知道的东西,鼠标键盘侦听可以从操纵者的输入中分析出很多数据,比如说输入习惯,讲话习惯,讲话风格,甚至还有可能分析出常用密码。这可是黑客很喜欢的东西,但是,我们做这个东西应该是为了学习,而不是去做坏事!因为我们是积极向上阳光的好孩子!

一、思路

键盘侦听:记录按下键->记录释放键->存入文本
鼠标侦听:记录移动位置->记录点击事件->记录滚轮事件->存入文本

二、实现

鼠标键盘侦听我用了pynput模块,这个模块包含了鼠标键盘的侦听跟操作,开始这个题目的时候我是想学习如何从底层开始监听的,奈何让我找到了一个集成了这些功能的模块,相关学习资料请移步官方文档:https://pythonhosted.org/pynput/index.html
1.键盘监听

import pynput
import time


wr = open(r'D:\S\monitorkeyboardandmouse\keyboard.txt','w')

def press(key):   #<96-105>对应小键盘数字0-9 <110>对应小键盘del键
    now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    try :
        wr.write(f'{now}按下{key}\n')
        print(f'{now}按下{key}')
    except:
        wr.write(f'{now}按下未知按键\n')
        print(f'{now}按下未知按键')

def release(key):
    now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    try:
        wr.write(f'{now}释放{key}\n')
        print(f'{now}释放{key}')
    except:
        wr.write(f'{now}释放未知按键\n')
        print(f'{now}释放未知按键')



pynput.keyboard.Listener(on_press = press,on_release = release).run()

效果:
Python侦听鼠标键盘事件并把记录写入本地文本_第1张图片

2.鼠标侦听

import pynput
import time

wr = open(r'D:\S\monitorkeyboardandmouse\mouse.txt','w')

def movemouse(x, y):
    now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    try :
        wr.write(f'{now}鼠标移动到{x,y}\n')
        print(f'{now}鼠标移动到{x,y}')
    except:
        wr.write(f'{now}未知鼠标操作')
        print(f'{now}未知鼠标操作')

def clickmouse(x,y,button,pressed):
    now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    try:
        if pressed:
            wr.write(f'{now}鼠标在{x,y}{button}点击\n')
            print(f'{now}鼠标在{x,y}{button}点击')
        else:
            wr.write(f'{now}鼠标在{x,y}{button}释放\n')
            print(f'{now}鼠标在{x,y}{button}释放')
    except:
        wr.write(f'{now}未知鼠标操作\n')
        print(f'{now}未知鼠标操作')


def scrollmouse(x,y,dx,dy):    #x,y 分别是鼠标位置,dx为0 ,dy=1时表示向上滚动,-1表示向下滚动
    now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    try:
        if dy == 1:
            wr.write(f'{now}鼠标在{x,y}向上滚动\n')
            print(f'{now}鼠标在{x,y}向上滚动')
        if dy == -1 :
            wr.write(f'{now}鼠标在{x,y}向下滚动\n')
            print(f'{now}鼠标在{x,y}向下滚动')
    except:
        wr.write(f'{now}未知鼠标操作\n')
        print(f'{now}未知鼠标操作')


pynput.mouse.Listener( on_move = movemouse,on_click = clickmouse,on_scroll = scrollmouse).run()

效果:
Python侦听鼠标键盘事件并把记录写入本地文本_第2张图片

结束

好了,侦听鼠标跟键盘的效果我们也达到了,虽然说用python似乎很容易就能实现,但我还是很好奇,这个模块到底是怎么去完成这些功能的,这就留到之后慢慢再深入研究啦。还有噢,这两个程序!只限于学习分享!可不是用来干坏事的!

你可能感兴趣的:(Python侦听鼠标键盘事件并把记录写入本地文本)