Скрипт AutoIT не может обработать знак "+" - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть переменная (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 голосов
/ 15 ноября 2018

С Функция отправки autoit :

'+' Это говорит AutoIt отправлять нажатие клавиши SHIFT;поэтому Send ("Hell + o") отправит текст "HellO".Send ("! + A") будет отправлять "ALT + SHIFT + a".

Чтобы преодолеть это, вам нужен

флаг [опционально] Изменяет как "ключи"обработано:

$ SEND_DEFAULT (0) = Текст содержит специальные символы, такие как + и!для обозначения нажатий клавиш SHIFT и ALT (по умолчанию).

$ SEND_RAW (1) = ключи отправляются необработанными.

В результате:

$var = "..... + .... +" // string containing special characters - "+"
Send($var, 1)         // do not interpret, use raw
0 голосов
/ 15 ноября 2018
WinWaitActive("Open")
Send($CmdLine[1], 1)
Send("{ENTER}")

Send будет интерпретировать + как shift .Используйте 2-й параметр Send флаг 1 для отправки необработанного текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...