Что нового

Как проверить конец работы установщика

c-n1x

Новичок
Сообщения
26
Репутация
1
Устанавливаю оффис в тихом режиме, следующие приложения, ждут пока исчезнет процесс setup.exe и только потом начинают исполняться

Код:
If GUICtrlRead($h_8) = $GUI_CHECKED Then
						GUICtrlSetData($hLabel, 'Устанавливаем Officex32')
						; устанавливаем Officex32
						Run("\\main\Inst_\Office 2010\RUS 32bit\setup.exe")
						GUICtrlSetData($hLabel, 'Office x 32 установлен')
					EndIf

If GUICtrlRead($h_10) = $GUI_CHECKED Then
						GUICtrlSetData($hLabel, 'Устанавливаем TryeCrypt')
						; устанавливаем TrueCrypt
						While 1
							Switch @SEC
								Case '00', '5', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55'
									If Not ProcessExists('setup.exe') Then
										run("\\main\Inst_\TrueCrypt\TrueCrypt Setup 7.0a.exe")
Endif


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

Как мне сделать проверку между
Код:
Run("\\main\Inst_\Office 2010\RUS 32bit\setup.exe")
и
Код:
GUICtrlSetData($hLabel, 'Office x 32 установлен')
?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,665
Репутация
2,463
А что мешает запустить setup.exe с ожиданием (через RunWait)?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
CreatoR [?]
А что мешает запустить setup.exe с ожиданием (через RunWait)?
c-n1x,
Например так:
Код:
$iStart = TimerInit()
$ahCallBackShow = _CallBack_Init('_ShowInfo', 234)
RunWait(@WindowsDir & '\notepad.exe')
_CallBack_Free($ahCallBackShow)
ToolTip('')
MsgBox(64, 'Info', 'OK!')

Func _ShowInfo()
	Local $sTime = StringFormat('Будет работать, пока не закрыть Блокнот\n%.2f сек', TimerDiff($iStart) / 1000)
	ToolTip($sTime, 0, 0)
EndFunc   ;==>_ShowInfo

Func _CallBack_Init($sFuncName, $iTime, $sParam = '')
	Local $hCallBack = DllCallbackRegister($sFuncName, 'int', $sParam)
	Local $aTimer = DllCall('user32.dll', 'uint', 'SetTimer', _
			'hwnd', 0, 'uint', 0, 'int', $iTime, 'ptr', DllCallbackGetPtr($hCallBack))
	Local $ahCallBack[2] = [$hCallBack, $aTimer[0]]
	Return $ahCallBack
EndFunc   ;==>_CallBack_Init

Func _CallBack_Free($ahCallBack)
	If $ahCallBack[0] <> -1 Then DllCallbackFree($ahCallBack[0])
	If $ahCallBack[1] <> -1 Then DllCall('user32.dll', 'int', 'KillTimer', 'hwnd', 0, 'uint', $ahCallBack[1])
EndFunc   ;==>_CallBack_Free
 
Верх