【问题标题】:AutoIT script is unable to handle "+" signAutoIT 脚本无法处理“+”号
【发布时间】:2018-11-15 21:18:05
【问题描述】:

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

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

【问题讨论】:

    标签: java windows autoit


    【解决方案1】:
    WinWaitActive("Open")
    Send($CmdLine[1], 1)
    Send("{ENTER}")
    

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

    【讨论】:

    【解决方案2】:

    来自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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-09
      • 2018-11-06
      • 1970-01-01
      • 2015-12-19
      • 2010-10-06
      • 2021-02-07
      • 1970-01-01
      相关资源
      最近更新 更多