跳到主要内容

运行上下文与生命周期

每次运行都有独立的上下文和资源。qk.Context 提供动作输入、触发信息、目标窗口等字段,详见 Ctx。编辑器启动、面板触发和被其他动作调用的输入条件可能不同。

输入与目标窗口​

quicker_in_param 接收调用方传入的文本;更多参数绑定规则见参数与返回值。通过 qk.Context 了解触发时的上下文,通过 qk.Window 的方法查找与操作窗口。查找结果可能为空,使用前必须检查。

依赖前台窗口的选区与键盘操作会受到用户切换窗口影响。尽可能明确查找并激活目标,先验证目标,再发送输入。调试时的窗口切换见调试。

超时与停止​

默认动作超时为 30 秒墙钟时间;等待用户、等待窗口和网络请求都消耗这段时间。可在编辑器修改,0 表示不限制动作时长,但各 API 的次数、大小和单次超时仍有效。

用户停止、动作超时或关联调用被取消时,停止信号不能靠 catch(Exception) 吞掉。finally 会进入有限清理阶段,仅允许产品支持的清理调用,例如日志、释放已按住的键、恢复本次剪贴板或关闭本次进度窗口;继续进行普通外部操作可能报 CAPABILITY_DENIED。

用户取消界面​

Prompt、Select、Form、PickFile 等界面取消通常返回 null,Confirm 返回 false。各成员可能有自己的约定,必须先检查返回值,再使用其字段。对话框取消与动作停止是两种不同情况。

状态与句柄​

局部变量在运行结束后消失。跨运行的数据使用 qk.State;文本状态与组合动作的状态存储可以互通。窗口、图片和界面句柄属于当前运行,不能跨运行保存或作为普通返回值输出。

脚本调用其他动作或公共子程序时,仍受调用链限制;混合调用链最多 16 层。状态和输出也有序列化大小与层数限制,见运行限额。

停止只控制脚本后续执行,已经发送的 HTTP 请求、启动的外部程序或写入的数据可能已生效。重要操作需要自己设计确认、幂等或补偿流程。