跳到主要内容

动作存储、执行与调试

Quicker V2 重做了动作的底层模型。基础动作、面板中的快捷操作和触发规则执行内容开始使用同一套“操作”概念。

这项变化主要解决 1.x 中动作类型多、参数字段含义不一致、正文与位置耦合,以及不同入口重复保存快捷操作的问题。

从字符串参数改为结构化参数

1.x 的动作经常根据动作类型解释 DataData2Data3 等字符串。同一个字段在不同动作中的含义可能完全不同,复杂动作还会把一段 JSON 再塞进字符串字段。

V2 为不同操作定义明确的参数对象。例如,发送文本、打开文件和运行动作各自保存自己的参数,而不是共同借用几个无类型字符串。

这会带来以下改进:

  • 参数含义更明确,减少编辑或转换时的歧义;
  • 不必反复把复杂数据序列化成字符串;
  • 新增操作时不需要继续扩展一个越来越大的动作类型枚举;
  • 编辑器可以根据参数定义生成输入界面和校验提示;
  • 导入旧数据时可以逐类转换,并保留无法识别的原始内容。

基础动作与快捷操作逐步统一

1.x 中,“基础动作”和轮盘、手势、扩展热键等位置使用的“快捷操作”是两套相似但不完全相同的模型。

V2 使用统一操作描述执行内容。发送按键、输入文本、打开文件、运行程序、显示面板和运行动作等能力可以在不同宿主中复用同一套参数定义。

统一并不表示所有操作都能放到所有位置。每个宿主仍会限制可创建的操作,例如高级鼠标专用操作不会出现在普通动作选择器中。

2.1.26 起,动作选择器中缺失的 编辑悬浮快捷入口 已恢复。选择动作时需要顺手调整动作内容,或把动作建立为悬浮入口,可在选择器里直接进入对应操作。

动作本体与使用位置分开

动作本体保存名称、图标、说明、运行选项和操作内容。动作页、新面板场景、快捷键和触发规则只负责说明动作在哪里出现或何时运行。

这种结构使同一个动作可以在多个位置复用。编辑动作本体不需要逐个更新按钮;整理面板位置也不会复制或改写动作正文。

“删除动作”和“移除位置”因此成为不同操作。V2 的动作管理会扫描动作页、新面板场景和多种触发引用,在删除前提示影响范围。

2.1.27 起,链接动作的标题、图标和说明会实时跟随目标动作更新;直接链接和间接链接都会刷新,减少改名或换图标后入口显示不一致的问题。

查看引用、原位替换与批量删除

动作右键菜单可以打开“动作引用位置”,汇总该动作所在的旧动作页、新面板场景和已支持的触发规则。移除其中一个位置或规则,不会删除动作本体。

需要用本地 JSON 更新现有动作时,可以使用“导入并替换动作”。V2 会保留原动作 ID,因此动作页、场景位置和触发规则不需要重新建立引用。

动作管理页支持按类型筛选和批量删除。删除前会汇总引用影响,并按统一删除流程建立动作历史备份;正在编辑的动作不会被批量删除。

批量删除动作页或分组时,应仔细阅读确认内容。删除位置、删除动作页和删除动作本体是三种不同操作,不能只根据按钮中出现“删除”二字判断影响范围。

新的操作编辑器

简单操作由统一动态表单编辑。文件、热键、动作、场景和其它业务类型仍可使用专门的选择器,而不是退化成普通文本框。

复杂操作继续使用专用编辑器。例如多步骤输入、新版组合动作和公共子程序不会被强行塞进通用表单。

字体和颜色类参数现在可以直接选择:字体支持搜索本机字体并滚动加载;颜色支持色板、透明度和 #AARRGGBB。这些参数仍可绑定变量,适合在动作运行时动态决定字体或颜色。

当前版本尚未支持编辑的已知操作会保留原始数据,并显示不可编辑提示。保存其它字段时,不应静默丢弃这部分内容。

编辑非组合动作时,可以点击“测试”直接运行当前尚未保存的操作参数。编辑窗口会先最小化,倒计时后执行,再恢复窗口,适合检查输入、启动程序和窗口操作等效果。

测试会真实执行当前操作。涉及文件写入、发送消息、网络请求或其它外部副作用时,应先换成测试数据。

公共子程序管理

V2 为公共子程序提供独立管理窗口,可以搜索、创建、编辑、删除和查看引用,也可以使用分组整理数量较多的公共子程序。

动作设计器中的公共子程序列表可以按分组筛选。删除分组只会把组内子程序移到“未分组”,不会同时删除子程序正文。

删除公共子程序前,Quicker 会检查动作和其它公共子程序中的引用。公共子程序与组合动作内部子程序是不同范围,整理时不要把两者混为一类。

动作设计器已恢复对历史网络共享子程序的搜索、预览和导入。公共子程序分享仍应按当前版本的提示确认兼容性,不要假设旧链接中的所有步骤都能在 V2 中编辑。

动作与公共子程序分享

Quicker 2.2.1 起,动作和公共子程序改用统一的分享与版本体系。同一个分享可以在一个修订中同时保存 Quicker 1.x 兼容内容和 Quicker 2.0 原生内容,也可以只发布其中一种。

Quicker 2.0 会优先安装同一修订中的原生内容,没有时仍可使用兼容内容。发布格式、公开审核、版本历史和旧 V2 分享的处理方式见分享动作与公共子程序

2.2.2–2.2.3 继续补齐统一分享的安装和嵌入细节:只有 V2 制品的动作可以正常安装;从分享链接安装动作、在动作设计器中下载网络共享子程序时,已修复可能读错格式或下载失败的问题。分享包含公共子程序的 Quicker 2.0 组合动作时,子程序会完整内嵌;无法安全转换的旧版组合动作会阻止发布,避免生成安装后不可用的分享。预览动作窗口标题也会显示制品和 revision 版本号,便于核对正在看的修订。

当前 V1 兼容判断仍可能有误差:有些动作可能在 1.x 中能安装但运行不了;审核中的动作不会影响已经发布的版本;客户端和服务端也可能继续调整。2.1.19–2.2.0 期间使用旧 V2 分享机制发布的内容需要重新分享。版本注意事项见官网版本记录

旧动作如何兼容

V2 会把支持的 1.x 动作转换成结构化动作。导入动作文件时可以识别 V1 和 V2 格式,也可以按需要导出 V1 兼容格式。

旧版组合动作保留运行和查看能力,但不再支持继续编辑或创建。建议把仍需维护的旧版组合动作迁移为新版组合动作。

只读分享动作会保留作者设定的保护边界。它们可以使用兼容调试输出,但不支持会暴露完整内部结构的断点和单步调试。

新版表达式引擎

V2 新增自研 QkEval 表达式引擎,重点改进执行速度、内存分配、错误定位和现代 C# 语法支持。

在“设置 → 基础设置 → 动作”中启用新表达式引擎后,表达式只使用 QkEval,不再回落到 Z.Expressions。升级前应先测试依赖特殊语法或第三方类型的复杂动作。

详细说明见全新表达式引擎

新版组合动作执行与调试

V2 为组合动作增加了新的步骤运行器和统一执行管道,并加强了取消、并行分支、运行状态和错误传播的一致性。

结构化调试会记录步骤层级、输入输出、变量变化、异常和并行分支关系。可编辑动作还支持断点、暂停、继续、单步进入、单步跳过和单步跳出。

详细说明见组合动作执行与调试变化

对普通用户的影响

大多数已支持的旧动作会自动迁移,不需要了解内部模型。升级后主要需要留意:

  1. 旧版组合动作改为只读查看;
  2. 无法完整转换的旧操作可能暂时只能兼容运行;
  3. 开启 QkEval 后,少数依赖 Z.Expressions 特性的表达式需要修改;
  4. 删除动作本体会影响多个使用位置,应先查看引用;
  5. 复杂动作应先复制测试,再覆盖原动作。