C# 将字符串参数传递给ControlSetText值时出现问题

C# 将字符串参数传递给ControlSetText值时出现问题,c#,autoit,C#,Autoit,嗨,在我非常简单的脚本中,当试图将CMD参数传递给ControlSetText值时,我得到了t。不知道我做错了什么,我将参数值作为字符串传递 第2行(文件“C:\Temp\Automation Testing\UploadInvoice2.exe”):错误: 数组变量的下标数或下标数不正确 超出了维度范围 这是我的简单AutoIT脚本: ControlFocus("Open","","Edit1") ControlSetText(&qu

嗨,在我非常简单的脚本中,当试图将CMD参数传递给ControlSetText值时,我得到了t。不知道我做错了什么,我将参数值作为字符串传递

第2行(文件“C:\Temp\Automation Testing\UploadInvoice2.exe”):错误: 数组变量的下标数或下标数不正确 超出了维度范围

这是我的简单AutoIT脚本:

ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1", $CmdLine[1])
ControlClick("Open","","Button1")
我在我的C#项目中运行它:

进程中的字符串。Start返回:

C:\Temp\Automation-Testing\UploadInvoice2.exe "C:\Temp\Automation-Testing\TestInvoice.txt"
它指向该文件夹中存在的文件:

所以我将字符串“C:\Temp\Automation Testing\TestInvoice.txt”作为参数。但它不起作用

知道我做错了什么吗? 如果我直接在autoIt脚本中硬编码该路径,它将起作用:

ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1","C:\Temp\Automation-Testing\TestInvoice.txt")
ControlClick("Open","","Button1")

谢谢,

我对AutoIT不太熟悉,但是我认为参数是零索引的,因此应该是$CmdLine[0],而不是$CmdLine[1]。

谢谢您的回答,我确实检查了这个问题,但实际上$CmdLine[0]根据文档,0元素返回的参数计数Ok。很抱歉回答这个问题。你能检查一下下面的表格吗。它给出Process.Start()方法的参数。在这里,可执行文件和参数是独立的参数。但是,在代码处理过程中,Start()接受单个参数。
ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1","C:\Temp\Automation-Testing\TestInvoice.txt")
ControlClick("Open","","Button1")