Как передать значение exe, а затем следующая кнопка должна быть выполнена powershell?

80
6

У меня есть код ниже, который выполняет exe файл, а затем я хочу, чтобы путь, который был назначен переменной, которая будет скопирована в текстовое поле этого exe, и как только она будет скопирована, следующая кнопка в exe должна быть нажата\выполнена автоматически от powershell.

& "D:\SOFTWARE\notepad ++.exe"
$Path="C:\Program Files"

В основном, я буду использовать этот код для некоторого другого exe файла, но процесс будет таким же. Итак, есть ли способ, которым я могу это сделать, используя powershell?

Consider an example of an image below

Рассмотрим снимок ниже пользовательского интерфейса приложения. Если я хочу передать ключ продукта, который я объявил в переменной внутри powershell после передачи его в приложение, а затем я хочу, чтобы его кнопка "Получить информацию о продукте" была нажата \Run. Snapshot of application UI where i want value to be copied and button to be executed

спросил(а) 2017-11-12T21:52:00+03:00 2 года, 10 месяцев назад
1
Решение
113

Вы должны посмотреть на использование SendKeys.

https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/10/provide-input-to-applications-with-powershell/

ответил(а) 2017-11-13T11:14:00+03:00 2 года, 10 месяцев назад
41

То, что вы на самом деле хотите, это передать переменные в msi, запустив его без интерфейса. Сначала попробуйте следующее (если ваш exe на самом деле является только оболочкой MSI)

msiexec.exe/i $PathToExe/q/l*vx log.txt

Это должно спокойно запустить msi и создать файл log.txt. Подождите несколько минут, чтобы завершить его, так как он устанавливается в фоновом режиме. Затем проверьте правильность установки. Затем проверьте файл журнала, чтобы увидеть все переменные, которые были установлены в конце. Угадываясь по их именам или значениям, вы можете передать их в следующий раз, просто добавив variablename=variablevalue в вызов командной строки. Возможно, вам придется экспериментировать и немного узнать о MSI и msiexec как об этом.

Если говорить о вызове действий пользовательского интерфейса в целом, тогда вам нужно будет посмотреть класс AutomationElement но он может стать очень сложным здесь...

ответил(а) 2017-11-12T22:42:00+03:00 2 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема