Здравствуйте. Решил написать программу для автоматической установки набора программ. Всё вроде бы работает (по отдельности) но я просто не знаю (или не хватает фантазии) как придумать добавить автоустановку SP3 для XP первым пунктом установки. Всё застопорилось на настойке автозапусков и указателях на функции.
Код:
; Запускаем скрипт с админскими правами
#requireadmin
;указываем, что нужно использовать координаты окна программы, а не рабочего стола
Opt("MouseCoordMode", 2)
Opt("PixelCoordMode", 2)
;эти инклуды нужны для используемых нами функций
#include <GUIConstants.au3>
#include <file.au3>
;Графическая оболочка (Гуи)
$hGUI = GUICreate('Инсталлер', 200, 430)
$h_1 = GUICtrlCreateCheckbox('SP3', 10, 20, 190, 17)
$h_2 = GUICtrlCreateCheckbox('Обновление драйверов', 10, 40, 190, 17)
$h_3 = GUICtrlCreateCheckbox('WinRar x32', 10, 60, 190, 17)
$h_4 = GUICtrlCreateCheckbox('WinRar x64', 10, 80, 190, 17)
$h_5 = GUICtrlCreateCheckbox('Adobe Reader XI', 10, 100, 190, 17)
$h_6 = GUICtrlCreateCheckbox('Microsoft Office 2007', 10, 120, 190, 17)
$h_7 = GUICtrlCreateCheckbox('Adobe Photoshop CC 14', 10, 140, 100, 17)
$h_8 = GUICtrlCreateCheckbox('Reboot', 10, 180, 190, 17)
$hLabel = GUICtrlCreateLabel('Выберите и нажмите старт', 10, 380, 180, 17)
$hButtonGo = GUICtrlCreateButton('СТАРТ', 10, 400, 80, 25)
$hButtonQuit = GUICtrlCreateButton('ВЫХОД', 100, 400, 80, 25)
GUISetState()
;Проверка есть ли наш скрипт в авторане
If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", @ScriptName) Then
MyFunc2()
Else
Myfunc()
EndIf
;Установка программ
Func Myfunc()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE Or $msg = $hButtonQuit
Exit
Case $msg = $hButtonGo
GUISetState(@SW_DISABLE)
If GUICtrlRead($h_1) = $GUI_UNCHECKED And GUICtrlRead($h_2) = $GUI_UNCHECKED And GUICtrlRead($h_3) = $GUI_UNCHECKED And GUICtrlRead($h_4) = $GUI_UNCHECKED And GUICtrlRead($h_5) = $GUI_UNCHECKED And GUICtrlRead($h_6) = $GUI_UNCHECKED And GUICtrlRead($h_7) = $GUI_UNCHECKED = $GUI_UNCHECKED And GUICtrlRead($h_8) = $GUI_UNCHECKED Then
MsgBox(0, 'Error', 'Ни одного пункта не выбрано!')
Else
If GUICtrlRead($h_1) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем SP3')
Здесь должен быть код установки SP3. Код приложен в конце. После окончания установки код должен продолжаться дальше.
GUICtrlSetData($hLabel, 'SP3 установлен')
EndIf
If GUICtrlRead($h_2) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Обновляем драйверы')
Run("\Автоинсталл\Soft\DRPSu12\DriverPackSolution.exe")
ControlClick('DriverPack Solution 12','Отмена','Button2')
GUICtrlSetData($hLabel, 'Драйверы обновлены')
EndIf
If GUICtrlRead($h_3) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем WinRar x32')
; устанавливаем WinRar x32
Run("\Автоинсталл\Soft\winrar-x32-420ru.exe")
WinWaitActive("WinRAR 4.20 (русская 32-разрядная версия)")
ControlClick('WinRAR 4.20 (русская 32-разрядная версия)','Установить','Button2')
WinWaitActive("Настройка WinRAR")
Send("{enter}")
WinWaitActive("Установка WinRAR")
ControlClick('Установка WinRAR','Готово','Button1')
WinClose("WinRAR")
sleep(1000)
GUICtrlSetData($hLabel, 'WinRar x32 установлен')
EndIf
If GUICtrlRead($h_4) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем WinRar x64')
; устанавливаем WinRar x64
Run("\Автоинсталл\Soft\winrar-x64-420ru.exe")
WinWaitActive("WinRAR 4.20 (русская 64-разрядная версия)")
ControlClick('WinRAR 4.20 (русская 64-разрядная версия)','Установить','Button2')
WinWaitActive("Настройка WinRAR")
Send("{enter}")
WinWaitActive("Установка WinRAR")
ControlClick('Установка WinRAR','Готово','Button1')
WinClose("WinRAR")
sleep(1000)
GUICtrlSetData($hLabel, 'WinRar x64 установлен')
EndIf
If GUICtrlRead($h_5) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем Adobe Reader XI')
; устанавливаем Adobe Reader XI
RunWait("\Автоинсталл\Soft\Adobe Reader XI v11.0.10\Adobe Reader XI v11.0.10\Adobe.Reader.XI.v11.0.10.exe /S /Q")
GUICtrlSetData($hLabel, 'Adobe Reader XI установлен')
EndIf
If GUICtrlRead($h_6) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем Microsoft Office 2007')
RunWait("\Автоинсталл\Soft\office2007\SETUP.EXE")
Sleep(1000)
GUICtrlSetData($hLabel, 'Microsoft Office 2007 установлен')
EndIf
If GUICtrlRead($h_7) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Устанавливаем Adobe Photoshop CC 14')
RunWait("\Автоинсталл\Soft\Adobe Photoshop CC 14.1.2 Final RePack\PhotoshopCC-14.1.2.exe /S /R")
Sleep(1000)
GUICtrlSetData($hLabel, 'Adobe Photoshop CC 14 установлен')
EndIf
If GUICtrlRead($h_8) = $GUI_CHECKED Then
GUICtrlSetData($hLabel, 'Reboot')
Shutdown(2)
GUICtrlSetData($hLabel, 'Reboot')
EndIf
MsgBox(0, 'Done!', 'Все выбранные программы установленны')
GUICtrlSetData($hLabel, 'Выберите софт и нажмите GO!')
EndIf
GUISetState(@SW_ENABLE)
EndSelect
WEnd
EndFunc ;==>Myfunc
Код установки SP3
Func fragment()
While 1
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "Path1", "REG_SZ", @ScriptFullPath)
RunWait("WindowsXP-KB936929-SP3-x86-RUS /passive /forcerestart")
WEnd
EndFunc
Func fragment2()
While 1
Sleep(30000)
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "Path1")
Shutdown(2)
WEnd
EndFunc