动作存储、执行与调试
Quicker V2 重做了动作的底层模型。基础动作、面板中的快捷操作和触发规则执行内容开始使用同一套“操作”概念。
这项变化主要解决 1.x 中动作类型多、参数字段含义不一致、正文与位置耦合,以及不同入口重复保存快捷操作的问题。
从字符串参数改为结构化参数
1.x 的动作经常根据动作类型解释 Data、Data2、Data3 等字符串。同一个字段在不同动作中的含义可能完全不同,复杂动作还会把一段 JSON 再塞进字符串字段。
V2 为不同操作定义明确的参数对象。例如,发送文本、打开文件和运行动作各自保存自己的参数,而不是共同借用几个无类型字符串。
这会带来以下改进:
- 参数含义更明确,减少编辑或转换时的歧义;
- 不必反复把复杂数据序列化成字符串;
- 新增操作时不需要继续扩展一个越来越大的动作类型枚举;
- 编辑器可以根据参数定义生成输入界面和校验提示;
- 导入旧数据时可以逐类转换,并保留无法识别的原始内容。
基础动作与快捷操作逐步统一
1.x 中,“基础动作”和轮盘、手势、扩展热键等位置使用的“快捷操作”是两套相似但不完全相同的模型。
V2 使用统一操作描述执行内容。发送按键、输入文本、打开文件、运行程序、显示面板和运行动作等能力可以在不同宿主中复用同一套参数定义。
统一并不表示所有操作都能放到所有位置。每个宿主仍会限制可创建的操作,例如高级鼠标专用操作不会出现在普通动作选择器中。
2.1.26 起,动作选择器中缺失的 编辑 和 悬浮快捷入口 已恢复。选择动作时需要顺手调整动作内容,或把动作建立为悬浮入口,可在选择器里直接进入对应操作。
动作本体与使用位置分开
动作本体保存名称、图标、说明、运行选项和操作内容。动作页、新面板场景、快捷键和触发规则只负责说明动作在哪里出现或何时运行。
这种结构使同一个动作可以在多个位置复用。编辑动作本体不需要逐个更新按钮;整理面板位置也不会复制或改写动作正文。
“删除动作”和“移除位置”因此成为不同操作。V2 的动作管理会扫描动作页、新面板场景和多种触发引用,在删除前提示影响范围。
查看引用、原位替换与批量删除
动作右键菜单可以打开“动作引用位置”,汇总该动作所在的旧动作页、新面板场景和已支持的触发规则。移除其中一个位置或规则,不会删除动作本体。
需要用本地 JSON 更新现有动作时,可以使用“导入并替换动作”。V2 会保留原动作 ID,因此动作页、场景位置和触发规则不需要重新建立引用。
动作管理页支持按类型筛选和批量删除。删除前会汇总引用影响,并按统一删除流程建立动作历史备份;正在编辑的动作不会被批量删除。
批量删除动作页或分组时,应仔细阅读确认内容。删除位置、删除动作页和删除动作本体是三种不同操作,不能只根据按钮中出现“删除”二字判断影响范围。
新的操作编辑器
简单操作由统一动态表单编辑。文件、热键、动作、场景和其它业务类型仍可使用专门的选择器,而不是退化成普通文本框。
复杂操作继续使用专用编辑器。例如多步骤输入、新版组合动作和公共子程序不会被强行塞进通用表单。
字体和颜色类参数现在可以直接选择:字体支持搜索本机字体并滚动加载;颜色支持色板、透明度和 #AARRGGBB。这些参数仍可绑定变量,适合在动作运行时动态决定字体或颜色。
当前版本尚未支持编辑的已知操作会保留原始数据,并显示不可编辑提示。保存其它字段时,不应静默丢弃这部分内容。
编辑非组合动作时,可以点击“测试”直接运行当前尚未保存的操作参数。编辑窗口会先最小化,倒计时后执行,再恢复窗口,适合检查输入、启动程序和窗口操作等效果。
测试会真实执行当前操作。涉及文件写入、发送消息、网络请求或其它外部副作用时,应先换成测试数据。
公共子程序管理
V2 为公共子程序提供独立管理窗口,可以搜索、创建、编辑、删除和查看引用,也可以使用分组整理数量较多的公共子程序。
动作设计器中的公共子程序列表可以按分组筛选。删除分组只会把组内子程序移到“未分组”,不会同时删除子程序正文。
删除公共子程序前,Quicker 会检查动作和其它公共子程序中的引用。公共子程序与组合动作内部子程序是不同范围,整理时不要把两者混为一类。
动作设计器已恢复对历史网络共享子程序的搜索、预览和导入。公共子程序分享仍应按当前版本的提示确认兼容性,不要假设旧链接中的所有步骤都能在 V2 中编辑。
动作与公共子程序分享
V2 动作和公共子程序分享在 2.1.20 起恢复为试验能力,适合先在可回退的动作副本上验证安装、运行和同步边界。它不等同于分享体系已经完全稳定。
Quicker 2.0 不再更新旧格式的 V1 分享动作。需要继续维护的动作,应按 V2 动作格式测试和分享;需要给 1.x 用户使用时,仍要单独确认旧版兼容导出是否满足需求。
旧动作如何兼容
V2 会把支持的 1.x 动作转换成结构化动作。导入动作文件时可以识别 V1 和 V2 格式,也可以按需要导出 V1 兼容格式。
旧版组合动作保留运行和查看能力,但不再支持继续编辑或创建。建议把仍需维护的旧版组合动作迁移为新版组合动作。
只读分享动作会保留作者设定的保护边界。它们可以使用兼容调试输出,但不支持会暴露完整内部结构的断点和单步调试。
新版表达式引擎
V2 新增自研 QkEval 表达式引擎,重点改进执行速度、内存分配、错误定位和现代 C# 语法支持。
在“设置 → 基础设置 → 动作”中启用新表达式引擎后,表达式只使用 QkEval,不再回落到 Z.Expressions。升级前应先测试依赖特殊语法或第三方类型的复杂动作。
详细说明见全新表达式引擎。
新版组合动作执行与调试
V2 为组合动作增加了新的步骤运行器和统一执行管道,并加强了取消、并行分支、运行状态和错误传播的一致性。
结构化调试会记录步骤层级、输入输出、变量变化、异常和并行分支关系。可编辑动作还支持断点、暂停、继续、单步进入、单步跳过和单步跳出。
详细说明见组合动作执行与调试变化。
对普通用户的影响
大多数已支持的旧动作会自动迁移,不需要了解内部模型。升级后主要需要留意:
- 旧版组合动作改为只读查看;
- 无法完整转换的旧操作可能暂时只能兼容运行;
- 开启 QkEval 后,少数依赖 Z.Expressions 特性的表达式需要修改;
- 删除动作本体会影响多个使用位置,应先查看引用;
- 复杂动作应先复制测试,再覆盖原动作。