我在Java
中有一个变量(fileSource
(,它包含+
符号。我尝试用以下代码将它粘贴到文件选择器对话框窗口中。
String autoITExecutable = "C:\_privat\filechooser.exe "" + fileSource + """;
AutoIT脚本,filechooser.exe
:
WinWaitActive("Open")
Send($CmdLine[1])
Send("{ENTER}")
变量的值在没有+
符号的情况下粘贴到对话框窗口。fileSource
的示例值:C:_privateinputFilesmy_upload1+1+2(original).pdf
AutoIT使用方式类似:C:_privateinputFilesmy_upload112(original).pdf
WinWaitActive("Open")
Send($CmdLine[1], 1)
Send("{ENTER}")
Send
将+
解释为移位键。使用Send
标志1的第二个参数发送原始文本。
来自自动发送功能:
'+'这个命令告诉AutoIt发送一个SHIFT键;因此Send("地狱+o"(将发送文本"地狱"。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