# 从外部启动Quicker动作
💡 专业版功能。
# 概述
如果需要在其他地方发起执行某个Quicker动作,如通过计划任务定时执行动作、在桌面上建立快捷方式、在浏览器中点击链接执行动作等,可以通过本文中的方式来实现。
如果您需要在一个动作中启动另外一个动作,请使用“[运行或停止动作](https://getquicker.net/kc/help/doc/runaction)”模块。该模块不需要专业版。
# 动作标识
可以使用**动作ID**、**动作的名称**、**动作库ID**(从动作库安装的动作)指定要运行的动作。在本文下面的部分,使用“动作标识”指代这些信息。
当使用动作名称或动作库ID时,请注意不能有重复。
**如何获得动作ID?**
在动作上点右键,在打开的菜单中选择“信息”,可以在二级菜单中选择复制动作ID或复制动作URI【菜单功能下个版本可用】:

也可以在打开的动作信息窗口中点击动作ID:

# 通过命令行或第三方程序启动
## 常规
启动方式:
`**"C:\Program Files\Quicker\QuickerStarter.exe" runaction:动作标识**`
如果要给动作传递参数:
`**"C:\Program Files\Quicker\QuickerStarter.exe" "runaction:动作标识 参数内容"**`
从1.8.0版本开始,也可以使用问号作为分隔符:
`**"C:\Program Files\Quicker\QuickerStarter.exe" runaction:动作标识?参数内容**`
从控制台返回动作结果(1.30.12+)
## 返回动作结果
为命令行增加`-c` (表示使用控制台返回结果,默认最长等待20秒)或`-c30`(-c加数字连写,表示从控制台返回结果,最长等待30秒)。
例如:
`"C:\Program Files\Quicker\QuickerStarter.exe" -c "runaction:动作标识 参数内容"`
`"C:\Program Files\Quicker\QuickerStarter.exe" -c100 "runaction:动作标识 参数内容"`
在动作中,通过“停止”模块返回内容。 如下面的动作直接返回收到的参数:

运行的效果如下图所示(参数为abcdefg,原样返回了abcdefg):

从python中获取返回值的示例(来自网友@地球)
```python
from subprocess import Popen, PIPE
proc = Popen(
[
"C:\Program Files\Quicker\QuickerStarter.exe",
"-c",
"runaction:动作标识?参数"
],
stdout=PIPE,
)
out, err = proc.communicate()
proc.wait()
print(out, err)
```
必须要注意:
1. 不能使用shell=True(这个默认值,不需要管)
2. stdout=PIPE
## 在命令行中通过URI方式启动
C:\Users\cuili>**start quicker:runaction:动作id或名称**
## PowerShell
方法1:
`Start-Process "c:/program files/quicker/quickerstarter.exe" -ArgumentList "runaction:动作ID或名称?参数"`
方法2:
`cmd.exe /c "C:\Program Files\Quicker\QuickerStarter.exe" runaction:URI`
方法3(在最前面加上 `&` 即可):
`&'C:\Program Files\Quicker\QuickerStarter.exe' 'runaction:{动作ID}?{参数}'`
## Aardio
```csharp
import process
process.execute("C:\Program Files\Quicker\QuickerStarter.exe","runaction:动作ID或名称?参数")
```
以上内容感谢网友@fantasynew提供。
# 通过URI方式启动
URI格式为:
**quicker:runaction:动作标识**
如:
quicker:runaction:25d718df-0f37-43ae-9fac-58fca1888113
quicker:runaction:动作名称 动作参数
quicker:runaction:动作名称?动作参数 (1.8.0+版本)
可以直接在Windows运行窗口(Win+R)中执行uri,

或点击此格式的网页链接。如下面的网页代码:
> 开启截图
> 开启动作xx
通过URI方式启动会比通过quickerstarter.exe稍微慢一点(多一次协议跳转的过程)。
# 其他应用方式参考
## 在桌面上创建动作的快捷方式
可以用命令行参数或uri格式。下图为uri格式的示例:(在桌面上右键,选择“新建”-》“快捷方式”)

## 在一个动作中启动另外一个动作
在组合动作中,使用“运行或打开”模块,将uri输入到“路径”参数中接口。
注意:此方式会立刻返回,不能等待动作执行完成。
## 在AHK软件中,通过快捷键调用Quicker动作
```
Run, "quicker:runaction:动作标识?动作参数"
```
## 在VBA中,调用Quicker动作
VBA代码中使用Shell函数,代码如下:
`Shell "C:\Program Files\Quicker\QuickerStarter.exe runaction:动作ID"`
示例:

## 在python中
```python
# 方法1
import subprocess
subprocess.run(["C:\Program Files\Quicker\QuickerStarter.exe","runaction:动作ID或名称?参数"])
# 方法2
import os
os.system("start quicker:runaction:25d718df-0f37-43ae-9fac-58fca1888113?参数")
```
## 使用计划任务启动Quicker动作
新建计划任务,操作类型选择“启动程序”。“程序或脚本”参数选择QuickerStarter.exe的完整路径(C:\Program Files\Quicker\QuickerStarter.exe),“添加参数”参数中输入“runaction:动作标识”。

# 注意事项
请勿使用管理员身份启动Quicker,会造成无法访问quicker协议。

# Quicker协议的其他功能
打开场景和动作设置窗口:`quicker:exesettings:`
调试运行动作:`quicker:debugaction:动作id或名称`
安装外观:`quicker:installskin:外观id`
预览动作:`quicker:previewaction:动作库动作id`
预览子程序:`quicker:previewaction:子程序id`
打开设置页:`quicker:settings:设置页id`
**显示提示消息**
quicker:showmessage:消息
quicker:showmessage:success:成功消息(绿色)
quicker:showmessage:warning:警告消息(黄色)
quicker:showmessage:error:警告消息(红色)
quicker:showmessage:info:信息消息(蓝色)
quicker:showmessage:信息消息(蓝色)