背景
一个人一天键盘要敲多少个键?一个人一天操作鼠标次数是多少?这显然不是我们想知道的东西,鼠标键盘侦听可以从操纵者的输入中分析出很多数据,比如说输入习惯,讲话习惯,讲话风格,甚至还有可能分析出常用密码。这可是黑客很喜欢的东西,但是,我们做这个东西应该是为了学习,而不是去做坏事!因为我们是积极向上阳光的好孩子!
一、思路
键盘侦听:记录按下键->记录释放键->存入文本
鼠标侦听:记录移动位置->记录点击事件->记录滚轮事件->存入文本
二、实现
鼠标键盘侦听我用了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()
效果:
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似乎很容易就能实现,但我还是很好奇,这个模块到底是怎么去完成这些功能的,这就留到之后慢慢再深入研究啦。还有噢,这两个程序!只限于学习分享!可不是用来干坏事的!