Skip to content

类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | simulate mouse clicks and keyboard input

License

Notifications You must be signed in to change notification settings

better-py/KeymouseGo

 
 

Repository files navigation

KeymouseGo v2.2

功能:记录用户的鼠标键盘操作,通过触发按钮自动执行之前记录的操作,可设定执行的次数,可以理解为 精简绿色版按键精灵

用途:在进行某些操作简单、单调重复的工作时,使用本软件就可以很省力了。自己只要做一遍,然后接下来就让电脑来做。


该软件通过 Python 语言编写,已编译为 windows 平台可执行文件,未安装 Python 的用户可直接下载 release 版本 https://github.com/taojy123/KeymouseGo/releases ,直接点击 KeymouseGo.exe 运行


关于作者:

我是陶佳元,热爱代码,怀旧,在互联网上常用的 ID 有 taojy123 、tao.py。

我的个人站点 tslow.cn 整理并罗列了一些 个人项目小工具 合集。

你可以在 简书 浏览我最新发布的文章,还可以在我的 优酷频道 观看技术分享和生活纪实。

我的邮箱: [email protected]

基本操作:

1、点击 录制 按钮,开始录制。

2、在计算机上进行任意操作,如点击鼠标、键盘输入,这部分的动作会被记录下来。

3、点击 结束 按钮,结束录制。

4、点击 启动 按钮,计算机会重复执行一遍第2步中所录制的动作。

提示:

1、可设置脚本重复执行的次数,如果为 0 即为无限循环。

2、默认启动热键为 F6,功能等同于 启动 按钮;默认终止热键为 F9,按下后将会停止正在运行的脚本。

3、录制时只记录鼠标点击动作和键盘动作,不记录鼠标移动轨迹。

4、每次录制结束后都会在 scripts 目前下生成一个新的脚本文件。

5、运行前可以在列表中选择一个需要执行的脚本。

6、scripts 下的脚本文件内容可以修改,修改时可参考如下所述 脚本格式说明

脚本格式说明:

[
 [3000, "EM", "mouse left down", [100, 200]], 
 [50,   "EM", "mouse left up", [100, 200]], 
 [1000, "EK", "key down", "f"], 
 [50,   "EK", "key up", "f"], 
 [2000, "EM", "mouse right down", [300, 400]], 
 [50,   "EM", "mouse right up", [300, 400]]
]

每一行代表一次动作:

  • 每行的第 1 个元素表示时间间隔,指的是本次动作与上一次动作之间相隔的时间,单位为毫秒。
  • 每行的第 2 个元素表示鼠标动作或是键盘动作:EM 为鼠标,EK 为键盘。
  • 每行的第 3 个元素表示动作的类型:mouse left down 为鼠标左键按下,mouse left up 为鼠标左键抬起,mouse right down 为鼠标右键按下,mouse right up 为鼠标右键抬起,key down 键盘按键按下,key up 键盘按键抬起。
  • 每行的第 4 个元素表示具体的动作参数,当为鼠标动作时,由两个子元素构成,分别为鼠标所在的屏幕位置的横纵坐标;键盘动作时为按下或抬起的按键名称。
  • 修改时请严格遵守格式,否则可能导致脚本无法运行,建议修改前先备份一下。

综上所述,示例中的脚本运行后的效果为:

  • 开始运行 3000ms 后,在屏幕坐标 (100,200)按下鼠标左键
  • 等待 50ms 后在相同位置 抬起鼠标左键
  • 等待 1000ms按下f键
  • 等待 50ms抬起f键
  • 等待 2000ms 后,在屏幕坐标 (300,400)按下鼠标左键
  • 等待 50ms 后在相同位置 抬起鼠标左键

使用命令行运行:

直接运行指定脚本:

> KeymouseGo.exe scripts/0314_1452.txt

运行指定脚本3次:

> KeymouseGo.exe scripts/0314_1452.txt 3

设定屏幕缩放比例:

win10 系统的用户通常会修改屏幕的缩放比例,见下图

在修改了缩放比例后,录制的脚本时会出现坐标偏移的问题

具体参看此 issue: taojy123#8

目前解决方案是,在 屏幕缩放 文本框中填写响应的值,比如 125%,然后再进行录制即可!


赞赏支持

如果您觉得这个项目对您有所帮助,并乐意支持开源工作,可通过 支付宝微信支付 为我赞赏支持

捐赠时可备注留下您的 Github 主页地址,我会将您加入 感谢列表 中(如果您愿意)

您的热情,我的动力!开源是一种精神,也是一种生活态度

感谢下列支持者:

感谢 JetBrains 免费提供开发工具


已知的一些问题

pynputmacOS 上有兼容性问题,发现无法同时监听鼠标和键盘事件的时候。

经过简单的验证发现:

  • 单纯的同时监听鼠标和键盘事件,没有问题
  • 在 wxpython 中只监听鼠标事件,没有问题
  • 在 wxpython 中只监听键盘事件,没有问题
  • 在 wxpython 中同时监听键盘事件,有几率会报错,并无法正常监听键盘事件
  • 暂时找不到解决方案,可能要考虑找 pynput 的替代品

详见此 issue moses-palmer/pynput#55


更新说明

暂时没法打包 x86 版本,32 位系统的同学请自行源码编译,或 下载v1.5老版本 使用

v2.2

  • 优化了脚本格式,将动作时间间隔,放到每行脚本的首位,逻辑更加合理
  • 默认录制的第一个动作不加时间间隔,即按下启动按钮后立即执行第一个动作
  • 如果重复多次执行,可修改脚本中第一个动作的时间(单位毫秒)来决定每轮动作之间的相隔时间

v2.1

  • 增加了屏幕缩放配置,兼容了修改过屏幕缩放比例的 win10 系统
  • 优化代码,兼容 Python3

v2.0

  • 代码优化重构
  • 使用 pynput 实现动作捕捉和执行,不再需要安装 pywin32pyhook
  • 兼容 macOS (需要在隐私设置中允许程序控制电脑)
  • pynput 似乎不兼容 WinXP,暂时没法打包 x86 版本

v1.5

  • 修复自定义缩放后录制定位偏移 Bug

v1.4

  • 增加命令行运行方式

v1.3

  • Bug 修复

v1.2

  • UI 更新
  • 移除了 后台模式
  • 简化了录制脚本,增强了可读性
  • 脚本文件名优化,可录制多个脚本,避免误操作覆盖了辛辛苦苦录制的脚本
  • 可自定义 启动热键终止热键

About

类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | simulate mouse clicks and keyboard input

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%