OxyClick 是一个面向 Windows 的键鼠连点器项目,使用 Rust 构建,目标是提供稳定、可配置、中文界面的桌面自动点击与按键触发工具。
当前仓库已经具备可直接运行的 GUI、真实 SendInput 输入后端、全局热键、TOML 配置持久化,以及适合日常使用的基础交互流程。
- 基于
eframe/egui的 Windows 桌面 GUI,默认中文界面。 - 鼠标左键、右键、中键自动点击。
- 键盘按键支持单键、组合键统一录制与触发;组合键规则为“多个修饰键 + 一个常规键”。
无限 / 计数 / 限时三种运行模式。切换 / 按住两种触发模式。- 可自定义全局热键,默认:
- 开始:
F6 - 停止:
F7 - 紧急停止:
Ctrl+Alt+Pause
- 开始:
- 热键输入框支持直接录制:点击输入框后直接按键即可获取组合键;常规键只能有一个,
Ctrl / Alt / Shift / Win可多个并作为修饰键;Tab / Esc不会保存,Esc会立即取消当前录制;切到其他程序窗口时会暂停录制,回到本程序窗口后继续;再次点击当前输入框或点击其他位置会退出录制,紧急停止支持一键清空。 - 热键后端优先使用
Low-Level Keyboard Hook,失败时自动回退到GetAsyncKeyState轮询方案。 - 表单修改会立即写入内存,并自动用于下一次启动。
Ctrl+S或界面上的“保存到本地”会把当前配置写入config.toml。- 点击“保存到本地”或按
Ctrl+S后,按钮会短暂显示“保存中”,用于确认保存已触发。 - 支持启动前延迟倒计时,默认
3000 ms,用于在点击“开始运行”后预留切回目标窗口或移开鼠标的时间。 - 支持“目标窗口失去焦点时自动停止”:运行开始后会锁定当前目标前台窗口,一旦切走就自动停止。
- 顶部状态区可显示运行状态、执行次数、执行时长。
- 配置文件支持自动创建、自动加载、旧配置中文迁移。
- Release 版本可直接编译为
target\release\oxyclick.exe。
- 在“配置编辑”里先选择动作类型。
- 如果是鼠标连点,选择左键、右键或中键;如果是键盘连发,点击“按键录制”后直接按下目标按键或组合键。
- 根据需要设置运行模式、间隔、按下时长、抖动和启动前延迟。
- 点击“开始运行”,或使用开始热键
F6启动。 - 如果当前配置想长期保留,再点击“保存到本地”或按
Ctrl+S写入配置文件。
- 顶部操作区:大号“开始运行 / 停止运行 / 取消启动”主按钮,以及“保存到本地”按钮。
- 保存成功后,按钮会短暂变为“保存中”并做 1 秒渐变反馈。
- 状态行:横向展示
运行状态 / 执行次数 / 执行时长。 - 左侧卡片“配置编辑”:
- 触发模式
- 运行模式
- 动作类型
- 键盘按键录制
- 间隔
- 按下时长
- 抖动
- 启动前延迟
- 右侧卡片“热键与安全”:
- 开始热键:点击后直接按下快捷键录制
- 停止热键:点击后直接按下快捷键录制
- 紧急停止热键:支持录制与清空
- 失焦自动停止:目标窗口一旦失去前台焦点就自动停止
补充说明:
- “计数 / 限时”模式会额外显示对应参数输入项。
- “键盘按键”动作会显示录制框,鼠标动作则显示按钮选择。
- 点击任意录制输入框后,如果再点击其他位置,会立刻退出录制状态。
- 录制组合键时,字母键 / 数字键 / 符号键只能出现一个;像
A+1、1+.、Ctrl+A+1这类不会提交。 - 常用符号键与小键盘符号键支持直接录制,例如
- / . [ ] ; ' ,与NumAdd / Num- / Num* / Num/ / Num.。
- 当前只有一套活动配置,但底层结构已经按多预设组织。
- 表单修改后不需要额外点击“应用配置”。
- 只要当前表单合法,下一次启动就会直接使用最新内存配置。
- 点击“保存到本地”或按
Ctrl+S,才会把配置持久化到磁盘。 - 保存成功时,顶部按钮会提供短暂的视觉反馈;不依赖额外弹窗或状态条。
- 首选:
%APPDATA%\OxyClick\config.toml - 回退:项目目录下的
config\config.toml
如果目标路径不存在,程序会自动创建默认配置文件。
cargo test
cargo run
cargo run -- --headless-summary
cargo build --releasecargo test:运行单元测试。cargo run:启动桌面 GUI。cargo run -- --headless-summary:输出启动摘要,适合快速检查程序是否能正常初始化。cargo build --release:生成发布版可执行文件target\release\oxyclick.exe。
target\release\oxyclick.exe为主要发布产物。- Release 构建启用了 Windows GUI 子系统,正常启动时不会额外弹出终端窗口。
- 如果启动失败,程序会使用 Windows 消息框显示错误信息。
- 仓库已支持 GitHub Actions 自动发布:推送语义化版本标签
vMAJOR.MINOR.PATCH后,会在windows-latest上自动执行测试、编译 Release,并把产物同步到 GitHub Releases。 - 当前 Release 附件命名遵循常见约定:
- 可执行文件:
OxyClick-v1.0.0.exe - 校验文件:
OxyClick-v1.0.0-sha256.txt
- 可执行文件:
推荐使用标准语义化版本(SemVer):
- 正式版:
v1.0.0 - 修复版:
v1.0.1 - 小功能版:
v1.1.0 - 大版本:
v2.0.0 - 预发布版:
v1.1.0-rc.1
发布步骤:
- 先把
Cargo.toml中的version更新为对应版本号,例如1.0.0。 - 提交并推送代码到远端分支。
- 创建并推送标签:
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0标签推送后,GitHub Actions 会自动:
- 校验标签
v1.0.0是否与Cargo.toml中的1.0.0一致 - 运行
cargo test --locked - 运行
cargo build --locked --release - 生成
OxyClick-v1.0.0.exe - 生成
OxyClick-v1.0.0-sha256.txt - 创建或更新右侧的 GitHub Release,并上传上述附件
- OxyClick 会发送真实输入事件,建议先在安全的测试环境中验证。
- “启动前延迟”只在以下场景生效:
- 通过界面上的“开始运行”启动
- 无论当前动作是鼠标还是键盘,只要是通过界面按钮启动,都会应用“启动前延迟”。
- 如果你是用鼠标点击“开始运行”,建议至少保留较明显的启动前延迟;默认值
3000 ms能避免程序刚启动就再次点到自己的按钮。 - 如果开启“目标窗口失去焦点时自动停止”,程序会在真正开始运行后锁定一个目标前台窗口;从 OxyClick 界面启动时,建议配合启动前延迟一起使用。
- 如果目标程序以管理员权限运行,OxyClick 通常也需要以管理员身份启动。
- 某些独占全屏、反作弊或驱动级拦截场景,不承诺完全兼容。
- 鼠标连点可以先从默认配置开始:
无限 + 左键 + 100 ms 间隔 + 10 ms 按下时长 + 10 ms 抖动 + 3000 ms 启动前延迟。 - 键盘连发建议优先使用录制框录制真实组合键,不要手工猜测按键名称;推荐把组合键理解为“修饰键 + 一个主键”。
- 如果要长时间运行,优先设置好“停止热键”和“紧急停止”。
- 修改表单后可以先直接试运行,确认没问题再保存到本地。
- 多预设管理:保存不同点击节奏,快速切换。
- 导入导出配置。
- 管理员权限与热键冲突的前置提示。
- 技术开发文档见 docs/TECH.md