Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
- #AutoIt3Wrapper_Compile_Both=y
- #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
- #include <ButtonConstants.au3>
- #include <WindowsConstants.au3>
- #include <GuiListView.au3>
- #include <File.au3>
- #include <FileOperations.au3>
- ; Local $sWorkDir
- Local $tools = @ScriptDir & '\tools'
- Local $Dism = @ScriptDir & "\Tools\Dism\Dism.exe"
- ; Local $ListView, $button, $item1, $item2, $item3, $item4, $item5, $msg, $Count, $Sort
- Local $iStyle = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES, $WS_EX_CLIENTEDGE)
- Dim $aDir[3] = [@SystemDir, @WindowsDir, @MyDocumentsDir]
- $iInd = 0
- $hGui = GUICreate('Remake W8shear', 760, 560)
- $tab = GUICtrlCreateTab(3, 3, 760 - 6, 560 - 6)
- $tab0 = GUICtrlCreateTabItem("Источник")
- GUICtrlCreateLabel('Рабочая папка', 10, 40, 90, 20)
- $iInpWorkDir = GUICtrlCreateInput('', 100, 40, 400, 20)
- $iSelDir = GUICtrlCreateButton('-', 505, 40, 21, 21, $BS_ICON)
- GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
- GUICtrlSetTip(-1, 'Выбрать Рабочую папку')
- GUICtrlCreateLabel('install.wim', 10, 70, 90, 17)
- $iInpWim = GUICtrlCreateInput('', 100, 70, 400, 20)
- $iOpenWim = GUICtrlCreateButton('-', 505, 70, 21, 21, $BS_ICON)
- GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
- GUICtrlSetTip(-1, 'Выбрать wim-образ')
- $iBtnMount = GUICtrlCreateButton('-', 505 + 23, 70, 21, 21, $BS_ICON)
- GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 0, 0)
- GUICtrlSetTip(-1, 'Монтировать wim-образ')
- $iUnMount = GUICtrlCreateButton("UnMount", 630, 69, 80, 23)
- GUICtrlSetTip(-1, 'Принудительно демонтировать wim-образ')
- $tab0 = GUICtrlCreateTabItem("Пакеты")
- $msg = GUIGetMsg()
- $nLV_Packages = GUICtrlCreateListView('Колонка1|Колонка2' , 5, 26, 750, 480, -1, $iStyle);, $iExWindowStyle)
- GUICtrlSendMsg($nLV_Packages, $LVM_SETCOLUMNWIDTH, 0, 380) ; Установка ширины 1-ой колонки
- GUICtrlSendMsg($nLV_Packages, $LVM_SETCOLUMNWIDTH, 1, 280) ; Установка ширины 2-й колонки
- ; _GUICtrlListView_AddColumn($nLV_Packages, 'Второе поле', 380)
- $hListView = GUICtrlGetHandle($nLV_Packages)
- $nButtonGo = GUICtrlCreateButton('Заполнить', 15, 520, 100, 30)
- $tab1 = GUICtrlCreateTabItem("Компоненты")
- $iLV_Components = GUICtrlCreateListView("Список компонентов", 5, 26, 750, 480, $LVS_NOCOLUMNHEADER, $LVS_EX_CHECKBOXES + $WS_EX_CLIENTEDGE)
- GUICtrlSendMsg($iLV_Components, $LVM_SETCOLUMNWIDTH, 0, 720) ; Установка ширины колонки
- Local $Checkbox[22] = [21] ; Объявляем массив, чтобы была выозможность обрабатывать компоненты в цикле
- $Checkbox[1] = GUICtrlCreateListViewItem("Замочить Специальные возможности", $iLV_Components)
- $Checkbox[2] = GUICtrlCreateListViewItem("Замочить Редактор метода ввода IME", $iLV_Components)
- $Checkbox[3] = GUICtrlCreateListViewItem("Замочить Средство переноса данных", $iLV_Components)
- $Checkbox[4] = GUICtrlCreateListViewItem("Замочить Языковые папки", $iLV_Components)
- $Checkbox[5] = GUICtrlCreateListViewItem("Замочить NaturalLanguage", $iLV_Components)
- $Checkbox[6] = GUICtrlCreateListViewItem("Замочить Инфракрасную поддержку", $iLV_Components)
- $Checkbox[7] = GUICtrlCreateListViewItem("Замочить поддержку Bluetooth", $iLV_Components)
- $Checkbox[8] = GUICtrlCreateListViewItem("Замочить поддержку SmartCard", $iLV_Components)
- $Checkbox[9] = GUICtrlCreateListViewItem("Замочить поддержку TV Tuner", $iLV_Components)
- $Checkbox[10] = GUICtrlCreateListViewItem("Замочить SpeechSupport (Балоболка)", $iLV_Components)
- $Checkbox[11] = GUICtrlCreateListViewItem("Замочить Actioncenter", $iLV_Components)
- $Checkbox[12] = GUICtrlCreateListViewItem("Замочить Securitycenter", $iLV_Components)
- $Checkbox[13] = GUICtrlCreateListViewItem("Замочить WindowsMail", $iLV_Components)
- $Checkbox[14] = GUICtrlCreateListViewItem("Замочить WinUpdate", $iLV_Components)
- $Checkbox[15] = GUICtrlCreateListViewItem("Замочить WordPad", $iLV_Components)
- $Checkbox[16] = GUICtrlCreateListViewItem("Замочить Biometrics", $iLV_Components)
- $Checkbox[17] = GUICtrlCreateListViewItem("Замочить скринсейверы (хранители экрана)", $iLV_Components)
- $Checkbox[18] = GUICtrlCreateListViewItem("Замочить лишние шрифты", $iLV_Components)
- $Checkbox[19] = GUICtrlCreateListViewItem("Замочить WinRE (Диск востановления)", $iLV_Components)
- $Checkbox[20] = GUICtrlCreateListViewItem("Замочить по индивидуальному списку", $iLV_Components)
- $Checkbox[21] = GUICtrlCreateListViewItem("Очистить папку Backup", $iLV_Components)
- $tab2 = GUICtrlCreateTabItem("Драйвера")
- $tab3 = GUICtrlCreateTabItem("Выполнить")
- $Checkbox1 = GUICtrlCreateCheckbox("Интегрировать NET Framework 3.5", 24, 40, 250, 17)
- $Checkbox2 = GUICtrlCreateCheckbox("Интегрировать обновления", 24, 65, 250, 17)
- $Checkbox3 = GUICtrlCreateCheckbox("Интегрировать драйвера", 24, 90, 250, 17)
- $Checkbox4 = GUICtrlCreateCheckbox("Сжать системные папки", 24, 115, 250, 17)
- $Checkbox5 = GUICtrlCreateCheckbox("Максимально сжать wim файл", 24, 140, 250, 17)
- $iStart = GUICtrlCreateButton("Выполнить", 24, 470, 80, 25)
- GUICtrlSetTip(-1, 'Выполнить все выбранные операции')
- $tab4 = GUICtrlCreateTabItem("Утилиты")
- $iStart = GUICtrlCreateButton("Создать WIM", 24, 470, 80, 25)
- GUICtrlSetTip(-1, 'Захват в образ системы находящейся в Аудите')
- GUICtrlCreateTabItem("") ; определяет конец вкладок
- ; $iButton = GUICtrlCreateButton('Start', 10, 10, 120, 22)
- ; $iStatusBar = GUICtrlCreateLabel('StatusBar', 5, 260 - 20, 150, 17)
- GUISetState()
- While 1
- Switch GUIGetMsg()
- Case $iSelDir
- ; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
- $tmp = FileSelectFolder('Выберите папку', '', 3, @DesktopDir, $hGui)
- ; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер" или Корзина
- If @error Or Not StringInStr(FileGetAttrib($tmp), "D") Then ContinueLoop
- GUICtrlSetData($iInpWorkDir, $tmp)
- Case $iOpenWim
- ; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
- $tmp = FileOpenDialog("Выберите install.wim файл..", @WorkingDir & "", "Images (*.wim)", 3)
- ; продолжить цикл опроса от начала, если выбор отменён
- If @error Then ContinueLoop
- GUICtrlSetData($iInpWim, $tmp)
- Case $iBtnMount
- $iInpWim0 = GUICtrlRead($iInpWim)
- $tmp = $iInpWim0
- ; If @error Or $tmp Then ContinueLoop ; Если нет ошибки и это папка, то продолжить цикл опроса от начала
- $folder = @ScriptDir & '\Mount'
- DirCreate($folder)
- $labelwim0 = '1'
- ShellExecuteWait('"' & $Dism & '"', " /mount-wim /wimfile:" & '"' & $iInpWim0 & '"' & " /index:" & $labelwim0 & " /mountdir:" & '"' & $folder & '"', "", "open", @SW_HIDE)
- MsgBox (64, 'Сообщение', 'Образ успешно смонтирован.')
- Case $iUnMount
- $folder = @ScriptDir & '\Mount'
- ShellExecuteWait('"' & $Dism & '"', " /unmount-wim /mountdir:" & '"' & $folder & '"' & " /discard", "", "open", @SW_HIDE)
- MsgBox (64, 'Сообщение', 'Образ успешно демонтирован.')
- Case $nButtonGo
- $file = FileOpen("Pack.txt", 0)
- $aFiles = FileReadLine($file)
- If @error Then ContinueLoop
- Dim $aItems[$aFiles[0]][1]
- For $i = 1 To $aFiles[0]
- $aItems[$i - 1][0] = $aFiles[$i]
- Next
- $aFiles = 0
- _GUICtrlListView_DeleteAllItems($hListView)
- _GUICtrlListView_BeginUpdate($hListView)
- _GUICtrlListView_AddArray($hListView,$aItems)
- _GUICtrlListView_EndUpdate($hListView)
- ;_GUICtrlListView_SetItemChecked($nLV_Packages, -1) ;Check All
- WinSetTitle($hGui, '', $file)
- $aItems = 0
- $file += 1
- If $file = 3 Then $file = 0
- Case -3
- Exit
- EndSwitch
- WEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement