鼠标键盘记录器真的有用处吗?用它能让重复工作变简单!

今天跟大家伙儿分享一下我捣鼓的这个鼠标键盘记录器,一开始就是想偷个懒,有些重复性的工作,手动搞太烦了,就想着能不能弄个工具自动搞定。

一开始的想法很简单,就是把我的鼠标点击、键盘输入给录下来,然后让它自己重复播放。听起来不难,但真要动手,还是踩了不少坑。

我上网搜了一堆资料,看了看别人是怎么做的。发现好多现成的软件,像啥按键精灵、TinyTask之类的,用起来是挺方便,但总觉得不够灵活,而且有些收费,有些还有广告,所以就想着自己动手写一个。

选语言的时候,我纠结了一下。C++、Python都考虑过,还是选了Python,主要是它上手快,而且库也多,搞起来方便。我记得第一步是监听鼠标键盘事件,这个在Python里可以用pynput库来实现。安装这个库,我直接在命令行里跑了句:

pip install pynput

安装好之后,就开始写代码了。先是写了一个简单的鼠标监听器,能把鼠标的点击位置、点击类型(左键、右键)打印出来。代码大概长这样:

python

from pynput import mouse

def on_click(x, y, button, pressed):

print('{0} at {1}'.format(

'Pressed' if pressed else 'Released',

(x, y)))

if not pressed:

# Stop listener

return False

with *(on_click=on_click) as listener:

跑起来之后,发现确实能监听到鼠标点击了,但只能打印,还不能记录。于是我就开始琢磨怎么把这些事件保存下来。我决定用一个列表来存,每个事件都用一个元组来表示,包含时间、事件类型、鼠标位置或者按键内容。比如:

[(时间, '鼠标点击', (x, y, button)), (时间, '键盘输入', 'a')]

有了这个数据结构,我就把鼠标监听器和键盘监听器都改了一下,把监听到的事件都添加到列表里。我还加了一个开始和停止录制的按钮,这样就可以控制什么时候开始录,什么时候结束录了。界面我用的是tkinter库,简单画了两个按钮。

录制功能搞定之后,就是回放功能了。回放就是把录制下来的事件列表拿出来,按照时间顺序依次执行。鼠标点击用来模拟,键盘输入用来模拟。为了让回放更真实,我还加了一个延迟,让每个事件之间都有一个短暂的停顿。

python

from * import Controller, Button

import time

mouse = Controller()

# 模拟鼠标点击

* = (x, y)

*(0.1) # 模拟人操作的停顿

整个过程挺枯燥的,调试的时候经常出错,要么是鼠标点的位置不对,要么是按键按错了。但每次解决一个问题,都感觉很有成就感。我把代码整理了一下,加了一些注释,做了一个简单的界面,感觉还挺像那么回事的。

不过这个东西也还有很多不足的地方,比如只能录制简单的鼠标点击和键盘输入,复杂的动作还不行;回放的时候容易出错,稳定性还有待提高。但这已经足够我应付一些简单的重复性工作了。

  • 准备工作:安装 pynput 库: pip install pynput
  • 核心代码:鼠标键盘事件监听、事件存储、事件回放
  • 界面:使用 tkinter 库简单实现

这回做鼠标键盘记录器,主要是为了解决自己工作中的一些重复性问题。虽然这个工具还不够完美,但已经能帮我节省不少时间了。更重要的是,通过这回实践,我对Python的了解更深入了,也学会了如何利用各种库来解决实际问题。以后有机会,我还想继续完善这个工具,让它更强大、更好用。