2016-03-22 11 views
0

Я пытаюсь построить сценарий Powershell, чтобы автоматизировать установку программы, которую я использую (к сожалению, в программе нет установщика без звука). Проблема заключается в том, что окно установщика не будет принимать ключи, отправленные sendkeys: если я просто нажму кнопку ввода, он будет работать, и отправка ввода с помощью sendkeys в любое другое окно тоже будет работать, но отправка ввода с помощью sendkeys в это конкретное окно установщика выиграет ничего не делай. Кто-нибудь сталкивался с этой проблемой раньше и знал, как ее решить? сценарий я пытаюсь использовать следующий образ:Почему окно не принимает ключи, отправленные sendkeys?

add-type -AssemblyName microsoft.VisualBasic 
add-type -AssemblyName System.Windows.Forms 

./installer.exe 

start-sleep 1 

[Microsoft.VisualBasic.Interaction]::AppActivate('select setup language') 
start-sleep 1 

[System.Windows.Forms.SendKeys]::SendWait('~'); 

P.S это не вопрос времени: Я попытался изменить спящие разы, но это не будет никакой пользы.

Спасибо!

+0

Устанавливается ли установщик при отсутствии сценария powershell? Обратите внимание, что вы не можете перетаскивать (например) между окнами с разными уровнями привилегий. – briantist

+0

@briantist - спасибо за ваш комментарий. Я не уверен, что понимаю, что вы имеете в виду - установщик имеет фокус, когда скрипт отправляет ключ ввода. – shayelk

+0

Работает ли ваш скрипт в режиме администратора? Если нет, запустите этот скрипт как привилегии администратора, даже если вы являетесь администратором этой системы. –

ответ

0

Вам просто нужно запустить этот скрипт в качестве администратора. Поскольку много раз случается, что даже если у нас есть права администратора, сценарий не может выполнять функциональные возможности winForms или других вещей. Так что это хорошая практика для запуска этого скрипта в качестве администратора (Run As Administrator).