Определение редакций в wim файле.
Доброго дня.
Только начинаю изучать Autoit. Нужна помощь.
Есть скрипт, нужно добавить перед монтированием wim файла определение редакций в образе и вывод их в окно GUICtrlCreateCombo.
В окне GUICtrlCreateCombo должны отображатся индекс и имя, желательно и описание.
Выбранному индексу нужно присвоить переменную.
Чем получать информацию, Imagex или Dism значения не имеет.
Код:
#include <ButtonConstants.au3>
; #include <TabConstants.au3>
; #include <WindowsConstants.au3>
#include <FileOperations.au3>
; Local $sWorkDir
Local $tools = @ScriptDir & '\tools'
$hGui = GUICreate('Cutter Win8', 760, 560)
$tab = GUICtrlCreateTab(3, 3, 760 - 6, 560 - 6)
$tab0 = GUICtrlCreateTabItem("Источник")
GUICtrlCreateLabel('Рабочая папка', 10, 40, 90, 17)
$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-файл')
GUICtrlCreateLabel('Редакция', 10, 100, 90, 17)
$index=GUICtrlCreateCombo ("", 100,100,150,24)
; GUICtrlSetData(-1,$wimlist&'1|wimpe|remark', $wiminfo)
GUICtrlSetTip($index, "Индекс образа."&@CRLF&"")
$tab0 = GUICtrlCreateTabItem("Пакеты")
$tab1 = GUICtrlCreateTabItem("Компоненты")
$tab2 = GUICtrlCreateTabItem("Драйвера")
$tab3 = GUICtrlCreateTabItem("Выполнить")
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
; $sWorkDir = $tmp
GUICtrlSetData($iInpWorkDir, $tmp)
Case $iOpenWim
; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
$tmp = FileOpenDialog("Выберите файл install.wim", @WindowsDir & "\", "Образ (*.wim)", 3, @DesktopDir, $hGui)
; продолжить цикл опроса от начала, если выбор отменён
If @error Then ContinueLoop
GUICtrlSetData($iInpWim, $tmp)
Case $iBtnMount
$iInpWim0 = GUICtrlRead($iInpWim)
$tmp = _FO_IsDir($iInpWim0)
If @error Or $tmp Then ContinueLoop ; Если нет ошибки и это папка, то продолжить цикл опроса от начала
$folder = @ScriptDir & '\Mount'
DirCreate($folder)
$labelwim0 = 'WIM1'
Run($tools & '\imagex.exe /mountrw "' & $iInpWim0 & '" "' & $labelwim0 & '" "' & $folder & '"', '', @SW_HIDE)
Case -3
Exit
EndSwitch
WEnd
|