PyKeyBoardFairy 是一个用 Python 编写的简单版键盘精灵工具,可以替代游戏中的卡键盘和鼠标宏,提供自动按键模拟功能。
程序依赖外部库:pynput>=1.7.3
- 多种按键模式:支持间隔按键、持续按键、组合按键三种模式
- 图形化界面:提供直观的 Tkinter GUI 界面,方便配置和管理
- 配置导入导出:支持 JSON 格式的配置导入导出
- 灵活的按键控制:通过开关键实时控制按键模拟的启停
- 线程安全:使用多线程和锁机制确保程序稳定运行
git clone https://gitee.com/J_Sky/py-key-board-fairy.git或直接下载压缩包解压。
确保系统已安装 Python 3.6 或更高版本,然后安装依赖:
pip install -r requirements.txt或单独安装:
pip install pynputGUI 界面版本(推荐):
- Windows:双击
start_gui.bat - 命令行:
python gui.py
命令行版本:
- Windows:双击
start_main.bat - 命令行:
python main.py
- 启动程序:运行
start_gui.bat或python gui.py - 添加配置:
- 点击"添加配置"按钮
- 在右侧编辑区设置参数:
- 按键类型:选择 interval(间隔)、always(持续)或 combination(组合)
- 开关键:选择用于控制该按键模拟的开关键
- 模拟键:选择要模拟按下的按键
- 间隔时间:设置按键之间的间隔时间(秒)
- 持续时间:仅 always 类型有效,设置按键按住的时长(秒)
- 初始状态:勾选表示程序启动时自动开启该按键
- 点击"保存配置"
- 编辑配置:在列表中选中配置,修改参数后点击"保存配置"
- 删除配置:选中配置后点击"删除配置"
- 调整顺序:使用"上移"和"下移"按钮调整配置顺序
- 启动模拟:点击"启动按键模拟"按钮
- 控制按键:按下配置的"开关键"来启动/停止对应的按键模拟
- 导入/导出:使用"导入配置"和"导出配置"按钮管理配置文件
修改 main.py 中的 keyList 配置参数,然后运行程序。
配置参数:
key_type:按键类型interval:魔法辅助技能键,间隔一定时间按一次always:一直按着不放开的键,中间可以有少量的时间暂停combination:组合技能,一组按键按照一定顺序和间隔时间的模拟按下(每个技能键只按一次)
key_switch:开关控制键,负责控制模拟这个技能键的开关key:需要模拟按下的技能键is_start:开关,确定当前技能键在程序开启时,默认是关闭的,一般为 0t:当前按键模拟按下离开的间隔时间,以秒为单位t1:当key_type=always时有效,表示按键一直按着不松开的时间(秒)
示例 1:一组技能键 b、c、d,每个技能大约 10 几秒或几十秒需要按一次,设置为每 0.5 秒按一下,启动开关为左 'alt' 键。
keyList = [
{
"key_type": "interval",
"key_switch": "alt",
"key": "b",
"is_start": 0,
"t": 0.5,
},
{
"key_type": "interval",
"key_switch": "alt",
"key": "c",
"is_start": 0,
"t": 0.5,
},
{
"key_type": "interval",
"key_switch": "alt",
"key": "d",
"is_start": 0,
"t": 0.5,
},
]示例 2:b 技能每 0.5 秒按一次;c 技能需要一直按着 5 秒,中间停顿 0.5 秒,启动开关为左 'alt' 键。
keyList = [
{
"key_type": "interval",
"key_switch": "alt",
"key": "b",
"is_start": 0,
"t": 0.5,
},
{
"key_type": "always",
"key_switch": "alt",
"key": "c",
"is_start": 0,
"t": 0.5,
"t1": 5
},
]示例 3:组合技能键 b、c、d,按下控制键 z 后,先模拟按下 b,0.5 秒后按下 c,1 秒后按下 d。
keyList = [
{
"key_type": "combination",
"key_switch": "z",
"key": "b",
"is_start": 0,
"t": 0,
},
{
"key_type": "combination",
"key_switch": "z",
"key": "c",
"is_start": 0,
"t": 0.5,
},
{
"key_type": "combination",
"key_switch": "z",
"key": "d",
"is_start": 0,
"t": 1,
},
]注意:key_type 为 combination 时,要注意同一控制键的技能键排列顺序和时间。
a-z, A-Z
0-9
- ctrl, shift, alt(左键)
- ctrl_r, shift_r, alt_r(右键)
- caps_lock, tab, esc, space, enter, backspace
- 方向键:up, left, right, down
- F1-F12
gui.py- GUI 界面主程序main.py- 命令行版本主程序start_gui.bat- GUI 版本启动脚本(Windows)start_main.bat- 命令行版本启动脚本(Windows)requirements.txt- Python 依赖包列表README.md- 项目说明文档
欢迎贡献代码!
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
本项目采用 LGPLv3 许可证。
- Author: J.sky
- Mail: bosichong@qq.com
- Python Flask Django 开心学习交流群:217840699
- 重构代码,采用面向对象设计
- 添加 Tkinter GUI 图形界面
- 改进线程管理和异常处理
- 添加配置导入导出功能
- 修复批处理文件错误
- 优化代码结构和可读性
