AutoIT脚本无法处理“ +”号

时间:2018-11-15 09:51:39

标签: java windows autoit

我在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

2 个答案:

答案 0 :(得分:1)

WinWaitActive("Open")
Send($CmdLine[1], 1)
Send("{ENTER}")

Send会将+解释为 shift 键。使用Send标志1的第二个参数发送原始文本。

答案 1 :(得分:1)

来自autoit Send Function

  

'+'这告诉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