Skip to content

MacroHID 2.1.0 正式版

Latest

Choose a tag to compare

@NotBadSlime NotBadSlime released this 19 Oct 09:43

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。