Repository navigation
MacroHID 2.1.0 正式版
发布日期:2026-10-22。版本号为 2.1.0,Git 标签为 v2.1.0。本次将此前的 2.1.0 测试版更新为正式版,对比基线为上一正式版 v2.0.2。
2026-10-23 更新发行文件:修复向右拖动停靠分隔条后,动作面板卡片超出窗口、右侧内容被裁掉的问题;同时修正右侧分隔条双击重置的目标列。版本号保持 2.1.0,重新下载本页安装包或便携包即可获取修复。
拖拽导入与关闭流程
- 支持从资源管理器将一个或多个
.mcrx、.xml、.lua、.xmbcs、.mq、.txt、.json文件拖入主界面,复用现有的格式识别、批量导入及子宏关联处理。 - 在宏库内拖入时保存到当前文件夹;在宏库管理页拖入时进入所选宏库并导入。忽略目录、重复路径及不支持的文件类型。
- 增加管理员运行时的 Windows Shell 文件接收通道。
- 修复退出清理完成过快时,在窗口关闭事件中再次关闭窗口引发异常的问题。关闭提示中选择退出后,自动停止播放、等待保存并退出,无需再次点击。
播放版本与界面
- 独立的播放版本对话框支持选择历史版本的播放实现;精度控制按卡片分组展示。
- 整合测试版中的热键启动延迟、SendInput 耗时补偿、Raw Input 热键检测、核心选择和系统延迟检查改进。
- 统一主题提示、对话框、输入校验与状态显示。
- 停靠分隔条使用统一的缩放逻辑,保持中间区域自适应;新增左右拖动、双击重置,以及三种语言下 320~900 宽度的动作面板布局回归检查。
Max(抢占)精度档
- 「精度控制 → 精度模式」新增 Max(抢占):在极限档的基础上,两个播放线程以 TimeCritical 运行在 RealTime 优先级进程中,启用 MMCSS 关键级,绑定到最安静的两个核心,所有等待都改为纯自旋。Max 热键待命时线程也保持自旋,首个输入不必等线程唤醒。
- 两个线程同时自旋到截止时刻,谁先到谁发送(无锁竞速),一个核被中断时另一个照常准时发送。
- 代价:监听和播放期间占满两个 CPU 核心,游戏帧率可能下降。只在当前播放版本下生效,选旧版本时按它自己的极限档播放。
- 实测(假输入,8 轮交替):
- 10ms 间隔:最大迟到中位从 17µs 降到 2µs,最差从 671µs 降到 173µs。
- 热键到首个 SendInput:P50 从 112µs 降到 69µs,P90 从 161µs 降到 115µs,P99 从 256µs 降到 197µs。
- 电源保护:屏幕关闭或变暗、睡眠和现代待机期间,以及唤醒后 2 分钟内,Max 自动退回极限档的做法(不自旋、不竞速、不待命自旋),并恢复进程优先级。起因:本机在一次测试中,退出现代待机 67 秒后蓝屏(
0x9F,AMD 音频协处理器驱动没能完成电源切换)。当时是 8 个核以最高优先级持续自旋,比 Max 激进得多,但 Max 也可能在待机前后撞上同样的问题。
播放期间禁止垃圾回收
- 极致、极限(含 Max)档下,单轮写下的时长不超过设定秒数(默认 120 秒)的宏,播放时不做 .NET 垃圾回收,避免按热键到第一下、循环衔接和条件监控时偶尔多出几毫秒的停顿。发键的原生线程本来就不受影响。
- 禁止状态在第一批按键交出去之后才进入,不会挡在第一下前面。
- 循环播放时,只在一轮最后一批之后、下一轮开始之前回收,不会打断一轮的中途。
- 新增「高级设置」(左侧「全局运行」,在「宏基础控制」下面),可调:
- 单轮不超过多少秒(填 0 关闭);
- 预留内存(默认 32MB);
- 离下一轮至少还有多少毫秒才回收(默认 3ms);
- 预留内存用掉多少才回收(默认 50%);
- 禁止状态失效后是否重新进入;
- 条件监控运行时是否也允许回收。
- 一轮用超预留内存时,.NET 会自己退出禁止状态并照常回收,内存不会失控。
- 带条件分支、跳转、子宏调用的宏走托管控制流,这次还没有接入,照常回收。
未验证与已知问题
- 没有用真实按键在游戏中做端到端测试。Max 和禁止 GC 都只用假输入测过。
- 禁止 GC 还没有在 MacroStudio 里做开关对照,改善幅度未量化。
- 全系统停顿的复查结论(更正了之前的说法)写在
docs/precision-architecture.md第 9 节。 - 本地托管测试 424 项通过,包含拖入文件的筛选、实际入库、目标文件夹及中文路径解码回归。尚未手工验收资源管理器跨权限拖拽和关闭交互。
下载 MacroHID-Setup-x64.exe 或 MacroHID-Portable-x64.zip,需要 .NET 8 Desktop Runtime x64。发行文件附带 SHA256SUMS.txt;本地另生成包含运行时的 artifacts/local-run/MacroStudio/MacroStudio.exe,需保留同目录依赖文件。完整代码对比:v2.0.2...v2.1.0。