Advertisement
AZJIO

Урезка Win7

Jul 29th, 2013
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 9.63 KB | None | 0 0
  1. #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
  2. #AutoIt3Wrapper_Compile_Both=y
  3. #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
  4. #include <ButtonConstants.au3>
  5. #include <WindowsConstants.au3>
  6. #include <GuiListView.au3>
  7. #include <File.au3>
  8. #include <FileOperations.au3>
  9.  
  10.     ; Local $sWorkDir
  11.     Local $tools = @ScriptDir & '\tools'
  12.     Local $Dism = @ScriptDir & "\Tools\Dism\Dism.exe"
  13.     ; Local $ListView, $button, $item1, $item2, $item3, $item4, $item5, $msg, $Count, $Sort
  14.     Local $iStyle = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES, $WS_EX_CLIENTEDGE)
  15.     Dim $aDir[3] = [@SystemDir, @WindowsDir, @MyDocumentsDir]
  16.     $iInd = 0
  17.  
  18.     $hGui = GUICreate('Remake W8shear', 760, 560)
  19.      
  20.     $tab = GUICtrlCreateTab(3, 3, 760 - 6, 560 - 6)
  21.     $tab0 = GUICtrlCreateTabItem("Источник")
  22.      
  23.     GUICtrlCreateLabel('Рабочая папка', 10, 40, 90, 20)
  24.     $iInpWorkDir = GUICtrlCreateInput('', 100, 40, 400, 20)
  25.     $iSelDir = GUICtrlCreateButton('-', 505, 40, 21, 21, $BS_ICON)
  26.     GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
  27.     GUICtrlSetTip(-1, 'Выбрать  Рабочую папку')
  28.      
  29.     GUICtrlCreateLabel('install.wim', 10, 70, 90, 17)
  30.     $iInpWim = GUICtrlCreateInput('', 100, 70, 400, 20)
  31.     $iOpenWim = GUICtrlCreateButton('-', 505, 70, 21, 21, $BS_ICON)
  32.     GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
  33.     GUICtrlSetTip(-1, 'Выбрать  wim-образ')
  34.     $iBtnMount = GUICtrlCreateButton('-', 505 + 23, 70, 21, 21, $BS_ICON)
  35.     GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 0, 0)
  36.     GUICtrlSetTip(-1, 'Монтировать wim-образ')
  37.  
  38.      $iUnMount = GUICtrlCreateButton("UnMount", 630, 69, 80, 23)    
  39.     GUICtrlSetTip(-1, 'Принудительно демонтировать wim-образ')
  40.  
  41.     $tab0 = GUICtrlCreateTabItem("Пакеты")
  42.     $msg = GUIGetMsg()
  43.     $nLV_Packages = GUICtrlCreateListView('Колонка1|Колонка2' , 5, 26, 750, 480, -1, $iStyle);, $iExWindowStyle)
  44.     GUICtrlSendMsg($nLV_Packages, $LVM_SETCOLUMNWIDTH, 0, 380) ; Установка ширины 1-ой колонки
  45.     GUICtrlSendMsg($nLV_Packages, $LVM_SETCOLUMNWIDTH, 1, 280) ; Установка ширины 2-й колонки
  46.     ; _GUICtrlListView_AddColumn($nLV_Packages, 'Второе поле', 380)
  47.     $hListView = GUICtrlGetHandle($nLV_Packages)
  48.  
  49.     $nButtonGo = GUICtrlCreateButton('Заполнить', 15, 520, 100, 30)
  50.  
  51.     $tab1 = GUICtrlCreateTabItem("Компоненты")
  52.     $iLV_Components = GUICtrlCreateListView("Список компонентов", 5, 26, 750, 480, $LVS_NOCOLUMNHEADER, $LVS_EX_CHECKBOXES + $WS_EX_CLIENTEDGE)
  53.     GUICtrlSendMsg($iLV_Components, $LVM_SETCOLUMNWIDTH, 0, 720) ; Установка ширины колонки
  54.     Local $Checkbox[22] = [21] ; Объявляем массив, чтобы была выозможность обрабатывать компоненты в цикле
  55.     $Checkbox[1] = GUICtrlCreateListViewItem("Замочить Специальные возможности", $iLV_Components)
  56.     $Checkbox[2] = GUICtrlCreateListViewItem("Замочить Редактор метода ввода IME", $iLV_Components)
  57.     $Checkbox[3] = GUICtrlCreateListViewItem("Замочить Средство переноса данных", $iLV_Components)
  58.     $Checkbox[4] = GUICtrlCreateListViewItem("Замочить Языковые папки", $iLV_Components)
  59.     $Checkbox[5] = GUICtrlCreateListViewItem("Замочить NaturalLanguage", $iLV_Components)
  60.     $Checkbox[6] = GUICtrlCreateListViewItem("Замочить Инфракрасную поддержку", $iLV_Components)
  61.     $Checkbox[7] = GUICtrlCreateListViewItem("Замочить поддержку Bluetooth", $iLV_Components)
  62.     $Checkbox[8] = GUICtrlCreateListViewItem("Замочить поддержку SmartCard", $iLV_Components)
  63.     $Checkbox[9] = GUICtrlCreateListViewItem("Замочить поддержку TV Tuner", $iLV_Components)
  64.     $Checkbox[10] = GUICtrlCreateListViewItem("Замочить SpeechSupport (Балоболка)", $iLV_Components)
  65.     $Checkbox[11] = GUICtrlCreateListViewItem("Замочить Actioncenter", $iLV_Components)
  66.     $Checkbox[12] = GUICtrlCreateListViewItem("Замочить Securitycenter", $iLV_Components)
  67.     $Checkbox[13] = GUICtrlCreateListViewItem("Замочить WindowsMail", $iLV_Components)
  68.     $Checkbox[14] = GUICtrlCreateListViewItem("Замочить WinUpdate", $iLV_Components)
  69.     $Checkbox[15] = GUICtrlCreateListViewItem("Замочить WordPad", $iLV_Components)
  70.     $Checkbox[16] = GUICtrlCreateListViewItem("Замочить Biometrics", $iLV_Components)
  71.     $Checkbox[17] = GUICtrlCreateListViewItem("Замочить скринсейверы (хранители экрана)", $iLV_Components)
  72.     $Checkbox[18] = GUICtrlCreateListViewItem("Замочить лишние шрифты", $iLV_Components)
  73.     $Checkbox[19] = GUICtrlCreateListViewItem("Замочить WinRE (Диск востановления)", $iLV_Components)
  74.     $Checkbox[20] = GUICtrlCreateListViewItem("Замочить по индивидуальному списку", $iLV_Components)
  75.     $Checkbox[21] = GUICtrlCreateListViewItem("Очистить папку Backup", $iLV_Components)
  76.  
  77.     $tab2 = GUICtrlCreateTabItem("Драйвера")
  78.     $tab3 = GUICtrlCreateTabItem("Выполнить")
  79.     $Checkbox1 = GUICtrlCreateCheckbox("Интегрировать NET Framework 3.5", 24, 40, 250, 17)
  80.     $Checkbox2 = GUICtrlCreateCheckbox("Интегрировать обновления", 24, 65, 250, 17)
  81.     $Checkbox3 = GUICtrlCreateCheckbox("Интегрировать драйвера", 24, 90, 250, 17)
  82.     $Checkbox4 = GUICtrlCreateCheckbox("Сжать системные папки", 24, 115, 250, 17)
  83.     $Checkbox5 = GUICtrlCreateCheckbox("Максимально сжать wim файл", 24, 140, 250, 17)
  84.     $iStart = GUICtrlCreateButton("Выполнить", 24, 470, 80, 25)
  85.     GUICtrlSetTip(-1, 'Выполнить все выбранные операции')
  86.     $tab4 = GUICtrlCreateTabItem("Утилиты")
  87.     $iStart = GUICtrlCreateButton("Создать WIM", 24, 470, 80, 25)
  88.     GUICtrlSetTip(-1, 'Захват в образ системы находящейся в Аудите')
  89.     GUICtrlCreateTabItem("") ; определяет конец вкладок
  90.      
  91.     ; $iButton = GUICtrlCreateButton('Start', 10, 10, 120, 22)
  92.     ; $iStatusBar = GUICtrlCreateLabel('StatusBar', 5, 260 - 20, 150, 17)
  93.     GUISetState()
  94.     While 1
  95.             Switch GUIGetMsg()
  96.             Case $iSelDir
  97.                 ; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
  98.                 $tmp = FileSelectFolder('Выберите папку', '', 3, @DesktopDir, $hGui)
  99.                 ; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер" или Корзина
  100.                 If @error Or Not StringInStr(FileGetAttrib($tmp), "D") Then ContinueLoop
  101.                             GUICtrlSetData($iInpWorkDir,  $tmp)
  102.  
  103.             Case $iOpenWim
  104.                 ; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
  105.                $tmp = FileOpenDialog("Выберите install.wim файл..", @WorkingDir & "", "Images (*.wim)", 3)
  106.                 ; продолжить цикл опроса от начала, если выбор отменён
  107.                 If @error Then ContinueLoop
  108.                             GUICtrlSetData($iInpWim,  $tmp)
  109.  
  110.             Case $iBtnMount
  111.                             $iInpWim0 = GUICtrlRead($iInpWim)
  112.                             $tmp = $iInpWim0
  113.                             ; If @error Or $tmp Then ContinueLoop ; Если нет ошибки и это папка, то продолжить цикл опроса от начала
  114.                             $folder = @ScriptDir & '\Mount'
  115.                             DirCreate($folder)
  116.                             $labelwim0 = '1'
  117.                             ShellExecuteWait('"' & $Dism  & '"', " /mount-wim /wimfile:" & '"' & $iInpWim0 & '"' & " /index:" & $labelwim0 & " /mountdir:" & '"' & $folder & '"', "", "open", @SW_HIDE)
  118.                 MsgBox (64, 'Сообщение',  'Образ успешно смонтирован.')
  119.  
  120.             Case $iUnMount
  121.                             $folder = @ScriptDir & '\Mount'
  122.                             ShellExecuteWait('"' & $Dism  & '"', " /unmount-wim /mountdir:" & '"' & $folder & '"' & " /discard", "", "open", @SW_HIDE)
  123.                         MsgBox (64, 'Сообщение',  'Образ успешно демонтирован.')
  124.  
  125.         Case $nButtonGo
  126.             $file = FileOpen("Pack.txt", 0)
  127.             $aFiles = FileReadLine($file)
  128.             If @error Then ContinueLoop
  129.             Dim $aItems[$aFiles[0]][1]
  130.             For $i = 1 To $aFiles[0]
  131.                 $aItems[$i - 1][0] = $aFiles[$i]
  132.             Next
  133.             $aFiles = 0
  134.             _GUICtrlListView_DeleteAllItems($hListView)
  135.             _GUICtrlListView_BeginUpdate($hListView)
  136.             _GUICtrlListView_AddArray($hListView,$aItems)
  137.             _GUICtrlListView_EndUpdate($hListView)
  138.             ;_GUICtrlListView_SetItemChecked($nLV_Packages, -1) ;Check All
  139.             WinSetTitle($hGui, '', $file)
  140.             $aItems = 0
  141.             $file += 1
  142.             If $file = 3 Then $file = 0
  143.                             Case -3
  144.                             Exit
  145.             EndSwitch
  146.     WEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement