影刀、Quicker和python之间的变量转换
一、Quicker
1、Quicker变量传入python
详情可以参考:https://getquicker.net/kc/manual/doc/quicker-starter
(1)通过python先执行动作后在用python接收参数
在Quicker的最好添加有一步停止,里面的返回值就是要传入的变量了,这个是运行完成后传输的变量

python接收,c115e161-49f7-4402-b0a8-c3a97fc23cd4为quicker动作id。c为等待时间,这里即时等待2s,默认最长等待20s。out即为结果。
from subprocess import Popen, PIPE proc = Popen( [ "C:\Program Files\Quicker\QuickerStarter.exe", "-c", "runaction:c115e161-49f7-4402-b0a8-c3a97fc23cd4" ], stdout=PIPE, ) out, err = proc.communicate() proc.wait()
text = out.decode('utf-8') # 解码成字符串 print(text)
|
这里是python调用quicker动作后在得到这个变量。
(2)通过终端来传输变量给python
后面变量还可以加的,允许多个变量。这个是传变量到py。

python接收,可以收一个变量,也可以是多个变量。
import sys
# 获取命令行传入的第一个参数 arg = sys.argv[1]
# 打印出来 print("接收到的参数是:", arg)
|
import sys
# sys.argv[0] 是脚本名,后面的都是传入的参数 args = sys.argv[1:] # 获取所有参数
print("接收到的参数有:", args)
# 如果想单独处理每个参数 for i, arg in enumerate(args, 1): print(f"参数{i}:{arg}")
|
2、Python变量传入quicker
(1)quicker内置的py脚本操作
py脚本中,通过quicker.context.GetVarValue('变量名')读取动作变量。通过quicker.context.SetVarValue('变量名',value)更新动作变量。例如,先设置一个变量,没有任何值

然后在python脚本当中给这个变量赋值

(2)quicker_in_param接收
py调用quicker时带入参数,只能传一个参数
import subprocess subprocess.run(["C:\Program Files\Quicker\QuickerStarter.exe","runaction:动作ID或名称?参数"])
|
quicker那边接收的话就是quicker_in_param这个参数里面了

比如这个参数为zds,那边quicker_in_param的变量的值也就是zds
3、quicker和终端
实现:这里就只讲一下终端启动quicker
powershell
Start-Process "c:/program files/quicker/quickerstarter.exe" -ArgumentList "runaction:动作ID或名称?参数"
cmd
"C:\Program Files\Quicker\QuickerStarter.exe" -c100 "runaction:动作标识?参数内容"
|
二、影刀
1、影刀和python
实现:用python调用quicker动作再把quicker的参数传递给影刀
在影刀当中新建python模块

以函数的形式返回要返回的变量什么的
# 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能 # 3. 当此模块作为流程独立运行时执行main函数 # 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot from xbot import print, sleep from .import package from .package import variables as glv from subprocess import Popen, PIPE
def main(args): pass
def function_one(): proc = Popen( [ "C:\Program Files\Quicker\QuickerStarter.exe", "-c", "runaction:c115e161-49f7-4402-b0a8-c3a97fc23cd4" ], stdout=PIPE, ) out, err = proc.communicate() proc.wait()
text = out.decode('utf-8') # 解码成字符串 return text
|
然后在影刀当中选择调用模块,其中返回的值就是可以交互的变量了。
2、影刀和quicker
实现:影刀传参数给quicker
只能单向,使用dos指令,命令行来运行quicker动作。
"C:\Program Files\Quicker\QuickerStarter.exe" runaction:动作标识?参数内容
|
