我编写了一段代码来执行完成安装的可执行文件。我失败的代码部分是我在几秒钟内给出了时间段,以便安装在该持续时间内完成,然后按键 Enter 完成安装。
但它根本不可靠,因为安装速度取决于机器的处理器速度,我必须在不同的机器中使用此代码,所以如果安装需要20秒而我已经给了15秒,那么它将需要在安装完成前输入击键,点击"取消"在对话框中,安装将在未完成的情况下终止。
PowerShell有没有办法检测到新的弹出对话框,或者它会检查进程是否完成,然后执行其余的程序?
$InstallFile = "D:\File for installation\folder\file.exe"
Start-Process $InstallFile
$wshell = New-Object -ComObject WScript.Shell;
$wshell.AppActivate($InstallFile)
Sleep 1
$wshell.SendKeys('')
Sleep 1
$wshell.Sendkeys('')
$wshell.SendKeys(" ")
$wshell.SendKeys("{TAB}")
$wshell.SendKeys("{TAB}")
$wshell.SendKeys('')
Sleep -s 10
$wshell.SendKeys('')
Sleep -s 5