Что нового

Автоматическая установка программ

Hibari

Новичок
Сообщения
2
Репутация
0
Здравствуйте, передо мной стоит элементарная задача запустить по очереди и пройти установку нескольких программ, но так как я установил AutoIt пол часа назад то мой код естественно не работает корректно, прошу Вашей помощи.

Вот то что я написал:
Код:
Run("MCEController.exe")
$title2 = WinGetTitle("[active]")
WinWaitActive ($title2)
Send("{ENTER}{ENTER}{ENTER}")
Sleep(800)
Send("{ENTER}")
WinWaitClose ($title2)

Run("DotNet4517.exe")
$title = WinGetTitle("[active]")
WinWaitActive ($title)
Send("{ENTER}") ; или для скрытой установки Send("{LSHIFT}{ENTER}")
WinWaitClose ($title)
Exit


Установка первой программы проходит удачно, а вторая не запускается, что не так? И подскажите я думаю нужно больше проверок делать с окнами, в общем нужна правка и оптимизация сего "кода", за ранее спасибо :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Начнём с банального... Возможно установка пакета DoNet требует права администратора, а чтобы наш код из запросил ставим в начале скрипта
Код:
#RequireAdmin
 
Автор
H

Hibari

Новичок
Сообщения
2
Репутация
0
Так и не нашел как не этом форуме цитировать, нет, права админа не нужны точно, менял местами "раны" и запускался дотнет а МСЕКонтроллер не запускался, но я понял что проблема в
Код:
WinWaitClose ($title2)
оно туда доходит и не идет дальше
 

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
Hibari [?]
Вот то что я написал:

Я бы сделал так:
Код:
$iPID = Run("MCEController.exe")
	If $iPID < 1 Then
	MsgBox(16,"","Не удалось запустить программу MCEController.exe" & @CRLF & "Выход!")
	Exit
	Else
	Sleep(1000)
	EndIF
$title2 = WinGetTitle("[active]")
WinActivate ($title2)
Sleep(250)
For $i = 1 To 4
Send("{ENTER}")
Sleep(800)
Next
	If NOT WinWaitClose ($title2, "", 60) Then
	MsgBox(16,"","Окно "&$title2&" не закрыто." & @CRLF & "Выход!")
	Exit
	EndIF
;-----------------------------------------------------------
$iPID = Run("DotNet4517.exe")
	If $iPID < 1 Then
	MsgBox(16,"","Не удалось запустить программу DotNet4517.exe" & @CRLF & "Выход!")
	Exit
	Else
	Sleep(1000)
	EndIF
$title = WinGetTitle("[active]")
WinActivate ($title)
Sleep(250)
Send("{ENTER}") ; или для скрытой установки Send("{LSHIFT}{ENTER}")

	If NOT WinWaitClose ($title, "", 60) Then
	MsgBox(16,"","Окно "&$title&" не закрыто." & @CRLF & "Выход!")
	Exit
	EndIF
 
Верх