我在fileSource
中有一个变量(Java
),其中包含+
符号。我尝试使用以下代码将其粘贴到文件选择器对话框窗口中。
String autoITExecutable = "C:\\_privat\\filechooser.exe \"" + fileSource + "\"";
AutoIT脚本,filechooser.exe
:
WinWaitActive("Open")
Send($CmdLine[1])
Send("{ENTER}")
将变量的值粘贴而没有+
的符号到对话框窗口。
fileSource
的示例值:C:\_private\input\Files\my_upload1+1+2(original).pdf
AutoIT的用法如下:C:\_private\input\Files\my_upload112(original).pdf
答案 0 :(得分:1)
WinWaitActive("Open")
Send($CmdLine[1], 1)
Send("{ENTER}")
Send
会将+
解释为 shift 键。使用Send
标志1的第二个参数发送原始文本。
答案 1 :(得分:1)
'+'这告诉AutoIt发送SHIFT击键;因此, Send(“ Hell + o”)将发送文本“ HellO”。 Send(“!+ a”)将发送 “ ALT + SHIFT + a”。
要克服这一点,您需要
flag [可选]更改“键”的处理方式:
$ SEND_DEFAULT(0)=文本包含特殊字符,例如+和!指示SHIFT和ALT键(默认)。
$ SEND_RAW(1)=键是原始发送的。
产生:
$var = "..... + .... +" // string containing special characters - "+"
Send($var, 1) // do not interpret, use raw