首页 > 解决方案 > AHK 如何将变量传递给函数内的“运行”?

问题描述

我对 autohotkey 相当陌生,最近在尝试将变量作为参数传递给 autohotkey 中的“运行”命令时遇到了问题。谁能告诉我我缺少什么或者这是一个错误?

Gui, Setup:Add, Edit, w100 vProgram
Gui, Setup:Add, Button, Default w100 gSubmit, OK
Gui, Setup:Show,, Setup
WinWaitClose, Setup
ExitApp

Submit:
    Gui, Setup:Submit
    RunStuff()

RunStuff() {
    Run, %Program%
}

我什至尝试将行更改为:

RunStuff() {
    run, Program
}

非常感谢您的帮助,在此先感谢。

标签: autohotkey

解决方案


您似乎认为您的问题出在 gui 输出上。

我想你可能想以不同的方式检查事情:

您可以创建一个脚本来分析您的运行输入。

例如:

脚本#1,我们称之为“1.ahk”

Run, 2.ahk param1 param 2 "param 3"

脚本#2,我们称之为“2.ahk”

txt := "Params as seen by ahk:`n"
for i, param in A_Args
    txt .= i " = " param "`n"
MsgBox % txt

通过运行脚本“1.ahk”,您可以看到“2.ahk”创建的消息:

Params as seen by ahk:
1 = param1
2 = param
3 = 2
4 = param 3

我认为这很能说明它如何理解空格,以及引号如何防止拆分参数。

现在,如果您针对“2.ahk”运行您的 gui 输出,您可能会看到与之前看到的不同的东西。


推荐阅读