随着 Gemini 3 Pro 等高性能大模型的发布,AI 辅助编程的能力迎来了质的飞跃。经过反复实测,我发现传统的 Quicker 动作开发模式——手动右键新建、填写标题描述、费力拖拽组件、编写代码——显得愈发低效且容易出错。
结论先行: 利用大模型遵循特定的 Quicker C# 开发规范,直接生成动作 JSON 数据,是目前最快、最优雅的开发方式。你甚至不需要打开 Quicker 的编辑窗口,只需编写一段提示词,AI 就能给你一个可以直接导入的成品动作。
1. 核心思路:解构 Quicker 动作
Quicker 的动作本质上是一段结构化的数据。当我们把一个动作复制到剪贴板或导出时,得到的其实是一个 JSON 对象。
- 首先我们按照常规方法编辑:

导出动作是一个json
桌面有这么一个文件

打开后的内容:
{
"Row": 2,
"Col": 0,
"ActionType": 24,
"Title": "demo",
"Description": "动作说明",
"Icon": "fa:Solid_LightSwitch",
"Path": null,
"DelayMs": 0,
"Data": "{\"LimitSingleInstance\":true,\"SummaryExpression\":\"$$\",\"SubPrograms\":[],\"Variables\":[{\"Key\":\"text\",\"Type\":0,\"Desc\":\"默认的文本变量\",\"DefaultValue\":\"\",\"SaveState\":false,\"IsInput\":false,\"IsOutput\":false,\"ParamName\":null,\"InputParamInfo\":null,\"OutputParamInfo\":null,\"TableDef\":null,\"CustomType\":null,\"Group\":null}],\"Steps\":[{\"StepRunnerKey\":\"sys:csscript\",\"InputParams\":{\"mode\":{\"VarKey\":null,\"Value\":\"normal_roslyn\"},\"script\":{\"VarKey\":null,\"Value\":\"//.cs 文件类型,便于外部编辑时使用\\r\\n// 引用必要的命名空间\\r\\nusing System.Windows.Forms;\\r\\n\\r\\n// Quicker将会调用的函数。可以根据需要修改返回值类型。\\r\\npublic static void Exec(Quicker.Public.IStepContext context)\\r\\n{\\r\\n //var oldValue = context.GetVarValue(\\\"varName\\\"); // 读取动作里的变量值\\r\\n //MessageBox.Show(oldValue as string);\\r\\n //context.SetVarValue(\\\"varName\\\", \\\"从脚本输出的内容。\\\"); // 向变量里输出值\\r\\n MessageBox.Show(\\\"Hello World!\\\");\\r\\n}\\r\\n\"},\"reference\":{\"VarKey\":null,\"Value\":\"\"},\"runOnUiThread\":{\"VarKey\":null,\"Value\":\"staLongRun\"},\"stopIfFail\":{\"VarKey\":null,\"Value\":\"0\"}},\"OutputParams\":{\"isSuccess\":null,\"rtn\":null,\"errMessage\":null},\"IfSteps\":null,\"ElseSteps\":null,\"Note\":\"\",\"Disabled\":false,\"Collapsed\":false,\"DelayMs\":0}]}",
"Data2": null,
"Data3": null,
"Children": null,
"Id": "b10ff244-3c1a-4f9c-940d-3af0b8c10b75",
"TemplateId": null,
"TemplateRevision": 0,
"UseTemplate": false,
"LastEditTimeUtc": "2025-12-04T08:50:44.5275946+08:00",
"SharedActionId": null,
"ShareTimeUtc": null,
"CreateTimeUtc": "2025-12-04T08:50:12.4246861+08:00",
"AsSubProgram": false,
"SkipWhenStopRunningActions": false,
"SkipCheckUpdate": false,
"AutoUpdate": false,
"KeepInfoWhenUpdate": false,
"MinQuickerVersion": "",
"ContextMenuData": "",
"AllowScrollTrigger": false,
"EnableEvaluateVariable": false,
"IsTextProcessor": false,
"IsImageProcessor": false,
"Association": {
"MatchProcess": null,
"IsImageProcessor": false,
"ReturnImageFromFirstScreenShotStep": true,
"IsTextProcessor": false,
"ReturnTextFromGetSelectedTextStep": true,
"TextMatchExpression": "",
"TextMinLength": 0,
"TextMaxLength": 0,
"IsHtmlProcessor": false,
"IsFileProcessor": false,
"FileMinCount": 0,
"FileMaxCount": 0,
"AllowedFileExtensions": "",
"RequireAllFileMatchExt": false,
"SearchBoxPlaceholder": "",
"IsWindowProcessor": false,
"EnableRealtimeSearch": false,
"BrowserContextMenu": null,
"UrlPattern": ""
},
"DoNotClosePanel": false,
"UserLimitation": null
}
一个典型的 C# 动作 JSON 包含以下关键信息:
-
元数据:标题(Title)、图标(Icon)、描述(Description)。
-
Data 字段:包含具体的步骤逻辑(Steps)、变量定义(Variables)。
-
StepRunnerKey:指定运行器,对于 C# 动作,核心是
sys:csscript。
这意味着,只要我们能控制 AI 生成符合此结构的 JSON,就跳过了所有 GUI 操作。
2. 实现步骤
第一步:准备“开发规范”提示词
为了让 AI 生成可运行的代码,我们需要“教会”它 Quicker 的运行环境。这包括:
-
运行模式:区分普通模式(访问动作变量)和低权限模式(跨进程)。
-
编译引擎:推荐使用 Roslyn (v2) 以支持较新的 C# 语法。
-
接口定义:明确
IStepContext接口,如何通过GetVarValue和SetVarValue读写变量。 -
线程模型:何时使用 UI 线程,何时使用 STA 后台线程。
(注:完整的提示词模板附在文末,建议保存为常用 Prompt)
第二步:发送指令与生成
将规范发给 Gemini,并附上你的需求。例如:
“基于上述规范,请开发一个简单的弹窗动作,标题为‘你好,这是一个C#动作测试!’,最后返回完整的 JSON。”
Gemini 会根据我们提供的 JSON 模板(Schema),填充进它编写好的 C# 代码。



第三部分:补充的遗漏细节与建议
在使用 AI 生成 Quicker JSON 时,为了保证稳定性和实用性,建议在文章或实际操作中注意以下细节:
-
转义字符处理(关键细节):
-
在 JSON 的
"script"字段中,C# 代码是作为字符串存储的。因此,代码中的换行符必须转义为\r\n,双引号必须转义为\"。 -
补充说明:Gemini 通常能处理好这点,但如果导入报错,通常是因为转义不彻底。可以在提示词中强调:“请确保 JSON 字符串中的 C# 代码进行了正确的双重转义,特别是换行符和引号。”
-
-
GUID 的唯一性:
-
JSON 中的
"Id"字段是动作的唯一标识符。如果多次导入同一个 JSON,Quicker 可能会提示覆盖。 -
建议:在提示词中告诉 AI:“每次生成时,请随机生成一个新的 UUID 赋值给 Id 字段”,这样每次粘贴都是一个新动作,不会意外覆盖旧的。
-
-
安全性提示:
-
虽然是 AI 生成的,但 C# 代码具有系统级权限。
-
建议:提醒读者在导入动作后,最好按住
Shift+ 点击动作进入编辑模式,简单审查一下Execute C# Code模块中的代码,确保没有类似于File.Delete等危险操作。
-
-
图标自定义:
-
提示词中可以加入让 AI 根据功能自动选择图标的要求。例如 Quicker 支持 FontAwesome 图标(如
fa:Solid_Code)。让 AI 根据动作功能自动填充Icon字段,会使生成的动作更美观。
-
-
Data 字段结构的特殊性:
-
Quicker 的 JSON 结构比较特殊,外层的
Data字段内部其实是一个 序列化后的字符串(Stringified JSON)。 -
补充:在你的示例 JSON 中,
Data的值是一个字符串"{\"LimitSingleInstance\":true...。这点非常重要,如果 AI 直接把Data写成了对象而不是字符串,Quicker 是无法识别的。你的提示词示例是正确的,但最好在提示词文字中明确这一点:“注意 Data 字段的值必须是序列化后的 JSON 字符串”。
-
Role: Quicker 动作开发专家
你是一名精通 Windows 效率工具 Quicker 的高级开发者。你的任务是根据用户的需求,编写符合 Quicker 规范的 C# 脚本,并将其封装为可直接导入的 JSON 动作数据。
Part 1: C# 开发规范
在 Quicker 中运行 C# 代码(普通模式 v2 - Roslyn)需遵循以下规则:
1. 核心接口
代码必须包含一个静态 Exec 方法,签名为:
using Quicker.Public;
// ... 其他引用
public static void Exec(IStepContext context)
{
// 读取变量
// var val = context.GetVarValue("变量名");
// 逻辑代码...
// 输出变量
// context.SetVarValue("变量名", "值");
}
2. 线程模型
UI 操作(WinForm/WPF):通常需要 STA 线程或 UI 线程。
纯逻辑/计算:使用后台线程。
注意:在 JSON 配置中,runOnUiThread 参数决定线程(ui, sta, mta 等)。
3. 引用与命名空间
默认已引用基础 .NET 库。
如需 System.Windows.Forms,需在代码头部 using 并在 JSON 的 reference 字段(如有必要)或通过全限定名调用。
4. 字符串换行约束 (Critical) 由于代码将被压缩在 JSON 字符串中,绝对禁止在 C# 字符串字面量中直接使用 \r、\n 或 \r\n 转义符。
错误写法:string msg = "第一行\r\n第二行"; (会导致编译时出现未终止的字符串错误)
正确写法:必须使用 Environment.NewLine 进行拼接。
示例:string msg = "第一行" + Environment.NewLine + "第二行";
或者插值:string msg = $"第一行{Environment.NewLine}第二行";
Part 2: JSON 数据结构规范 (Critical)
生成的输出必须是纯 JSON 格式,结构如下。
关键约束:
Data 字段:最外层的 "Data" 字段的值,必须是一个 JSON 序列化后的字符串 (Stringified JSON)。不能是对象!
转义处理:
由于 Data 内部是字符串,且包含 C# 代码,代码中的换行符必须转义为 \r\n。
代码中的双引号 " 必须转义为 \"。
如果在 Data 字符串内部还有层级(如 script 字段),可能需要多重转义。
唯一性:"Id" 字段必须是一个随机生成的全新 GUID/UUID,防止覆盖现有动作。
时间戳:LastEditTimeUtc 和 CreateTimeUtc 使用当前 UTC 时间。
标准 JSON 模板:
{
"Row": 0,
"Col": 0,
"ActionType": 24, // 24 代表组合动作
"Title": "动作标题",
"Description": "动作描述",
"Icon": "fa:Solid_Code", // 使用 FontAwesome 图标,如 fa:Solid_Bolt
"Data": "{\"LimitSingleInstance\":true,\"Steps\":[{\"StepRunnerKey\":\"sys:csscript\",\"InputParams\":{\"mode\":{\"Value\":\"normal_roslyn\"},\"script\":{\"Value\":\"// 这里是经过转义的 C# 代码字符串 \\r\\n public static void Exec(Quicker.Public.IStepContext context) { ... }\"},\"runOnUiThread\":{\"Value\":\"ui\"}}}],\"Variables\":[]}",
"Id": "随机UUID",
// ... 其他标准字段保持默认
}
Part 3: 生成要求
编写功能完整的 C# 代码(使用 Roslyn 模式)。
自动选择合适的 FontAwesome 图标。
严格遵守 JSON 格式,特别是 Data 字段的序列化和 C# 代码的转义。
直接返回 JSON 代码块,不要包含过多解释。
需求描述:
你的任务
请根据以下需求,生成一个完整的 Quicker 动作 JSON。
生成一个显示当前时间弹窗的动作

京公网安备 11010502053266号