代码之家  ›  专栏  ›  技术社区  ›  plaidshirt

AutoIT脚本无法处理“+”符号

  •  0
  • plaidshirt  · 技术社区  · 7 年前

    我有一个变量( fileSource )在 Java ,其中包含 + 签名我尝试用以下代码将其粘贴到文件选择器对话框窗口中。

    String autoITExecutable = "C:\\_privat\\filechooser.exe \"" + fileSource + "\"";
    

    AutoIT脚本, filechooser.exe

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

    粘贴变量的值时不带 + 登录到对话框窗口。 文件源 : C:\_private\input\Files\my_upload1+1+2(original).pdf AutoIT使用它的方式如下: C:\_private\input\Files\my_upload112(original).pdf

    2 回复  |  直到 7 年前
        1
  •  1
  •   michael_heath    7 年前
    WinWaitActive("Open")
    Send($CmdLine[1], 1)
    Send("{ENTER}")
    

    Send 将解释 + 作为 钥匙使用第二个参数 标志1发送原始文本。

        2
  •  1
  •   Bakudan Lovely    7 年前

    autoit Send Function :

    “+”这告诉AutoIt发送SHIFT键击;所以,, Send(“Hell+o”)将发送文本“HellO”。发送(“+a)将发送 “ALT+SHIFT+a”。

    要克服这一点,您需要

    标志[可选]更改“键”的处理方式:

    $SEND_DEFAULT(0)=文本包含特殊字符,如+和!指示按下SHIFT键和ALT键(默认)。

    导致:

    $var = "..... + .... +" // string containing special characters - "+"
    Send($var, 1)         // do not interpret, use raw