AutoItSetOption("TrayIconHide", 1) ;скрыть в системной панели индикатор AutoIt Global $Ini = @ScriptDir&'\ghost_set.ini' ; путь к ghost_set.ini ;Проверка существования ghost_set.ini $answer = "" If Not FileExists($Ini) Then $answer = MsgBox(4, "Выгодное предложение", "Хотите создать необходимый ghost_set.ini для сохранения вводимых параметров?") If $answer = "6" Then IniWriteSection($Ini, "Ghost", 'zip=" -Z3"'&@LF&'auto=" -AUTO"'&@LF&'split=" -SPLIT=1900"'&@LF&'dsk="1:1"'&@LF&'gho="1:2"'&@LF&'Path1="D:"'&@LF&'Path2="\SYS\ImageHDD\"'&@LF&'dvd="E:"'&@LF&'namegho="myhdd"'&@LF&'password="111"'&@LF&'ver="Ghost32 11.0"') EndIf ;считываем ghost_set.ini $zip= IniRead ($Ini, "Ghost", "zip", " -Z3") $auto= IniRead ($Ini, "Ghost", "auto", " -AUTO") $split= IniRead ($Ini, "Ghost", "split", " -SPLIT=1900") $dsk= IniRead ($Ini, "Ghost", "dsk", "1:1") $gho= IniRead ($Ini, "Ghost", "gho", "1:2") $Path1= IniRead ($Ini, "Ghost", "Path1", "D:") $Path2= IniRead ($Ini, "Ghost", "Path2", "\SYS\ImageHDD\") $dvd= IniRead ($Ini, "Ghost", "dvd", "E:") $namegho= IniRead ($Ini, "Ghost", "namegho", "myhdd") $password= IniRead ($Ini, "Ghost", "password", "111") $ver= IniRead ($Ini, "Ghost", "ver", "Ghost32 11.0") $zip1 = StringMid($zip, 4) $split1= StringMid($split, 9) GUICreate("!!!ОПАСНО!!! восстановление Windows XP из образа",500,307) ; размер окна $tab=GUICtrlCreateTab (4,5, 492,300) ; размер вкладки $tab2=GUICtrlCreateTabitem ("Ghost") ; имя вкладки GUICtrlCreateLabel ("Прочитать условия выполнения автовосстановления (рекомендуется)", 40,40,420,22) $start1=GUICtrlCreateButton ("V", 15,40,17,17) GUICtrlSetTip(-1, "Справка") GUICtrlCreateLabel ("Запуск Ghost32 (безопасно)", 40,60,420,22) $start2=GUICtrlCreateButton ("V", 15,60,17,17) GUICtrlSetTip(-1, "Почти без параметров.") GUICtrlCreateLabel ("Пароль разблокировки кнопок:", 40,80,200,22) GUICtrlSetTip(-1, 'Пароль "'&$password&'",'&@CRLF&'вводим и жмём кнопку.') $pass=GUICtrlCreateButton ("V", 15,80,17,17) GUICtrlSetTip(-1, 'Пароль "'&$password&'",'&@CRLF&'вводим и жмём кнопку.') $pass_input=GUICtrlCreateInput ('', 240,77,61,20) GUICtrlCreateLabel ("Автосоздание образа диска C в корень диска D (безопасно)", 40,100,420,22) $create1=GUICtrlCreateButton ("V", 15,100,17,17) GUICtrlSetTip(-1, "Автосоздание образа диска C в корень диска D (безопасно)") GUICtrlCreateLabel ("Автосоздание образа диска C в спец-каталог диска D (безопасно)", 40,120,420,22) $create2=GUICtrlCreateButton ("V", 15,120,17,17) GUICtrlSetTip(-1, "Автосоздание образа диска C в спец-каталог диска D (безопасно)") GUICtrlCreateLabel ("!!! ОПАСНО !!! Автовосстановление из образа в корне диска D", 40,140,420,22) $restore1=GUICtrlCreateButton ("V", 15,140,17,17) GUICtrlSetTip(-1, "!!! ОПАСНО !!! Автовосстановление из образа в корне диска D") GUICtrlCreateLabel ("!!! ОПАСНО !!! Автовосстановление из образа в спец-каталоге диска D", 40,160,420,22) $restore2=GUICtrlCreateButton ("V", 15,160,17,17) GUICtrlSetTip(-1, "!!! ОПАСНО !!! Автовосстановление из образа в спец-каталоге диска D") GUICtrlCreateLabel ("!!! ОПАСНО !!! Автовосстановление из образа в спец-каталоге DVD-диска", 40,180,420,22) $restore3=GUICtrlCreateButton ("V", 15,180,17,17) GUICtrlSetTip(-1, "!!! ОПАСНО !!! Автовосстановление из образа в спец-каталоге DVD-диска") GUICtrlCreateLabel ("Открыть каталог с программой для просмотра", 40,200,420,22) $start8=GUICtrlCreateButton ("V", 15,200,17,17) GUICtrlSetTip(-1, "Открыть каталог с программой для просмотра") $Label20=GUICtrlCreateLabel ("Уровень сжатия:", 20,230,100,20) GUICtrlSetTip(-1, "Указать уровень сжатия образа при сохранении") $combozip=GUICtrlCreateCombo ("", 130,227,65,18) GUICtrlSetData(-1,$zip1&'|0|1|2|3|4|5|6|7|8|9', $zip1) $Label23=GUICtrlCreateLabel ("Размер тома, Мб:", 20,265,110,20) GUICtrlSetTip(-1, "Указать размер, на который будет разделён образ, Мб.") $combosplit=GUICtrlCreateCombo ("", 130,262,65,18) GUICtrlSetData(-1,$split1&'|695|1000|1900|3900', $split1) GUICtrlCreateLabel ("Конфигурация в ghost_set.ini.", 250,250,200,20) GUICtrlSetState($create1, 128) GUICtrlSetState($create2, 128) GUICtrlSetState($restore1, 128) GUICtrlSetState($restore2, 128) GUICtrlSetState($restore3, 128) GUICtrlCreateTabitem ("") ; конец вкладок GUISetState () While 1 $msg = GUIGetMsg() Select Case $msg = $start1 ShellExecute(@ScriptDir&'\Readme_auto.txt') Case $msg = $start2 $combosplit1 = GUICtrlRead ($combosplit) $combosplit2 = ' -SPLIT='&$combosplit1 ShellExecute(@ScriptDir&'\ghost32.exe',$combosplit2,'','', @SW_HIDE ) WinWaitActive($ver) Sleep(400) Send("{Enter}") Send("{RIGHT}") Send("{DOWN}") Send("{RIGHT}") Send("{DOWN}") IniWrite($Ini, "Ghost", "split", '"'&$combosplit2&'"') Case $msg = $create1 ; бэкап предыдущих образов не удаляя. ;До четырёх бэкапов, с условием что образ состоит не более чем из 4-х частей. $Path3=$Path1&'\'&$namegho If FileExists($Path3&'.gho3.BAK') Then FileDelete ( $Path3&'.gho3.BAK' ) If FileExists($Path3&'.gho2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'.gho2.BAK '&$namegho&'.gho3.BAK', '', @SW_HIDE ) If FileExists($Path3&'.gho1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'.gho1.BAK '&$namegho&'.gho2.BAK', '', @SW_HIDE ) If FileExists($Path3&'.gho.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'.gho.BAK '&$namegho&'.gho1.BAK', '', @SW_HIDE ) If FileExists($Path3&'.gho') Then RunWait ( @Comspec & ' /C ren '&$Path3&'.gho '&$namegho&'.gho.BAK', '', @SW_HIDE ) If FileExists($Path3&'001.ghs3.BAK') Then FileDelete ( $Path3&'001.ghs3.BAK' ) If FileExists($Path3&'001.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'001.ghs2.BAK '&$namegho&'001.ghs3.BAK', '', @SW_HIDE ) If FileExists($Path3&'001.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'001.ghs1.BAK '&$namegho&'001.ghs2.BAK', '', @SW_HIDE ) If FileExists($Path3&'001.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'001.ghs.BAK '&$namegho&'001.ghs1.BAK', '', @SW_HIDE ) If FileExists($Path3&'001.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path3&'001.ghs '&$namegho&'001.ghs.BAK', '', @SW_HIDE ) If FileExists($Path3&'002.ghs3.BAK') Then FileDelete ( $Path3&'002.ghs3.BAK' ) If FileExists($Path3&'002.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'002.ghs2.BAK '&$namegho&'002.ghs3.BAK', '', @SW_HIDE ) If FileExists($Path3&'002.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'002.ghs1.BAK '&$namegho&'002.ghs2.BAK', '', @SW_HIDE ) If FileExists($Path3&'002.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'002.ghs.BAK '&$namegho&'002.ghs1.BAK', '', @SW_HIDE ) If FileExists($Path3&'002.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path3&'002.ghs '&$namegho&'002.ghs.BAK', '', @SW_HIDE ) If FileExists($Path3&'003.ghs3.BAK') Then FileDelete ( $Path3&'003.ghs3.BAK' ) If FileExists($Path3&'003.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'003.ghs2.BAK '&$namegho&'003.ghs3.BAK', '', @SW_HIDE ) If FileExists($Path3&'003.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'003.ghs1.BAK '&$namegho&'003.ghs2.BAK', '', @SW_HIDE ) If FileExists($Path3&'003.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path3&'003.ghs.BAK '&$namegho&'003.ghs1.BAK', '', @SW_HIDE ) If FileExists($Path3&'003.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path3&'003.ghs '&$namegho&'003.ghs.BAK', '', @SW_HIDE ) $combozip1 = GUICtrlRead ($combozip) $combozip2 = ' -Z'&$combozip1 $combosplit1 = GUICtrlRead ($combosplit) $combosplit2 = ' -SPLIT='&$combosplit1 ShellExecute(@ScriptDir&'\ghost32.exe','-AUTO'&$combozip2&$combosplit2&' -clone,mode=pdump,src='&$dsk&',dst='&$gho&'\'&$namegho&'.gho -sure','','', @SW_HIDE ) IniWrite($Ini, "Ghost", "zip", '"'&$combozip2&'"') IniWrite($Ini, "Ghost", "split", '"'&$combosplit2&'"') Case $msg = $create2 ; бэкап предыдущих образов не удаляя. ;До четырёх бэкапов, с условием что образ состоит не более чем из 4-х частей. $Path4=$Path1&$Path2&$namegho If FileExists( $Path4&'.gho3.BAK') Then FileDelete ( $Path4&'.gho3.BAK' ) If FileExists( $Path4&'.gho2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'.gho2.BAK myhdd.gho3.BAK', '', @SW_HIDE ) If FileExists( $Path4&'.gho1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'.gho1.BAK myhdd.gho2.BAK', '', @SW_HIDE ) If FileExists( $Path4&'.gho.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'.gho.BAK myhdd.gho1.BAK', '', @SW_HIDE ) If FileExists( $Path4&'.gho') Then RunWait ( @Comspec & ' /C ren '&$Path4&'.gho myhdd.gho.BAK', '', @SW_HIDE ) If FileExists( $Path4&'001.ghs3.BAK') Then FileDelete ( $Path4&'001.ghs3.BAK' ) If FileExists( $Path4&'001.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'001.ghs2.BAK myhdd001.ghs3.BAK', '', @SW_HIDE ) If FileExists( $Path4&'001.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'001.ghs1.BAK myhdd001.ghs2.BAK', '', @SW_HIDE ) If FileExists( $Path4&'001.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'001.ghs.BAK myhdd001.ghs1.BAK', '', @SW_HIDE ) If FileExists( $Path4&'001.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path4&'001.ghs myhdd001.ghs.BAK', '', @SW_HIDE ) If FileExists( $Path4&'002.ghs3.BAK') Then FileDelete ( $Path4&'002.ghs3.BAK' ) If FileExists( $Path4&'002.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'002.ghs2.BAK myhdd002.ghs3.BAK', '', @SW_HIDE ) If FileExists( $Path4&'002.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'002.ghs1.BAK myhdd002.ghs2.BAK', '', @SW_HIDE ) If FileExists( $Path4&'002.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'002.ghs.BAK myhdd002.ghs1.BAK', '', @SW_HIDE ) If FileExists( $Path4&'002.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path4&'002.ghs myhdd002.ghs.BAK', '', @SW_HIDE ) If FileExists( $Path4&'003.ghs3.BAK') Then FileDelete ( $Path4&'003.ghs3.BAK' ) If FileExists( $Path4&'003.ghs2.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'003.ghs2.BAK myhdd003.ghs3.BAK', '', @SW_HIDE ) If FileExists( $Path4&'003.ghs1.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'003.ghs1.BAK myhdd003.ghs2.BAK', '', @SW_HIDE ) If FileExists( $Path4&'003.ghs.BAK') Then RunWait ( @Comspec & ' /C ren '&$Path4&'003.ghs.BAK myhdd003.ghs1.BAK', '', @SW_HIDE ) If FileExists( $Path4&'003.ghs') Then RunWait ( @Comspec & ' /C ren '&$Path4&'003.ghs myhdd003.ghs.BAK', '', @SW_HIDE ) $combozip1 = GUICtrlRead ($combozip) $combozip2 = ' -Z'&$combozip1 $combosplit1 = GUICtrlRead ($combosplit) $combosplit2 = ' -SPLIT='&$combosplit1 ;$auto = ' -AUTO' ;If GUICtrlRead ($checkCN023)=4 Then $auto = '' ShellExecute(@ScriptDir&'\ghost32.exe','-AUTO'&$combozip2&$combosplit2&' -clone,mode=pdump,src='&$dsk&',dst='&$gho&$Path2&$namegho&'.gho -sure','','', @SW_HIDE ) IniWrite($Ini, "Ghost", "zip", '"'&$combozip2&'"') IniWrite($Ini, "Ghost", "split", '"'&$combosplit2&'"') Case $msg = $restore1 ShellExecute(@ScriptDir&'\ghost32.exe','-clone,mode=pload,src='&$gho&'\'&$namegho&'.gho:1,dst='&$dsk&' -sure','','', @SW_HIDE ) Case $msg = $restore2 ShellExecute(@ScriptDir&'\ghost32.exe','-clone,mode=pload,src='&$gho&$Path2&$namegho&'.gho:1,dst='&$dsk&' -sure','','', @SW_HIDE ) Case $msg = $restore3 ShellExecute(@ScriptDir&'\ghost32.exe','-clone,mode=pload,src='&$dvd&'\z-imahdd\'&$namegho&'.gho:1,dst='&$dsk&' -sure','','', @SW_HIDE ) Case $msg = $start8 Run('explorer.exe '&@ScriptDir) Case $msg = $pass If GUICtrlRead ($pass_input) = $password Then GUICtrlSetState($create1, 64) GUICtrlSetState($create2, 64) GUICtrlSetState($restore1, 64) GUICtrlSetState($restore2, 64) GUICtrlSetState($restore3, 64) Else MsgBox(0, "", "Пароль неверный") EndIf Case $msg = -3 ExitLoop EndSelect WEnd |