_WIM_CaptureImage
Создаёт новый wim-файл из содержимого указанной папки
#Include <wimgapi.au3>
_WIM_CaptureImage ( $hWIM, $sPath [, $dwCaptureFlags = $WIM_FLAG_VERIFY ] )
Параметры
$hWIM | Дескриптор wim-файла, возвращённый функцией _WIM_CreateFile() или _WIM_CaptureImage() |
$sPath |
Каталог, данные которого будут сохранены в образ |
$dwCaptureFlags |
[необязательный] Свойства функции при создании образа. Это может быть комбинацией следующих значений: 0 - Нет особенностей $WIM_FLAG_VERIFY - Проверяет, что файлы в одном экземпляре байт за байтом $WIM_FLAG_NO_RP_FIX - Отключает автоматическое исправление пути для связанных и символических ссылок. $WIM_FLAG_NO_DIRACL - Отключает восстановление информации безопасности для каталогов. $WIM_FLAG_NO_FILEACL - Отключает восстановление информации безопасности для файлов |
Возвращаемое значение
Успех: | Возвращает открытый дескриптор объекта образа |
Ошибка: | Возвращает 0 и устанавливает @error: |
@error: | 1 - Не удалось использовать DLL файл |
2 - Неизвестный тип возвращаемого значения | |
3 - Не найдена функция в DLL файле | |
4 - Не верное число параметров | |
В обоих случаях @extended равен _WinAPI_GetLastError() |
Примечания
Для получения информации во время создания образа смотрите функцию _WIM_RegisterMessageCallback()См. также
_WIM_RegisterMessageCallbackПример
; Homes32
; http://www.autoitscript.com/forum/topic/127075-wimgapi-udf/
#include <wimgapi.au3>
Local $hWim, $hImage, $sPath, $sWimPath
$sPath = FileSelectFolder('Выбрать папку источник', '', 3, @WorkingDir)
If @error Then Exit
$sWimPath = FileSaveDialog('Сохранить в wim-файл', @WorkingDir, 'Образ (*.wim)', 16, 'install.wim')
If @error Then Exit
If StringRight($sWimPath, 4) <> '.wim' Then
$sWimPath &= '.wim'
If FileExists($sWimPath) And MsgBox(4, 'Сообщение', $sWimPath & ' уже существует.' & @LF & 'Заменить?') = 7 Then Exit
EndIf
$aResult = _WIM_Startup() ; Открывает wimgapi.dll
If @error Then Exit MsgBox(0, 'Сообщение', 'Ошибка открытия wimgapi.dll')
; Создаёт новый wim-файл
$hWim = _WIM_CreateFile($sWimPath, $WIM_GENERIC_READ + $WIM_GENERIC_WRITE, $WIM_CREATE_ALWAYS, $WIM_FLAG_SHARE_WRITE, $WIM_COMPRESS_LZX)
If $hWim Then
MsgBox(0, 'Сообщение', 'Дескриптор wim-файла $hWim = ' & $hWim)
Else
MsgBox(0, 'Сообщение', 'Ошибка создания wim-файла')
_Exit()
EndIf
; Добавляет файлы указанного каталога в образ
$hImage = _WIM_CaptureImage($hWim, $sPath, $WIM_FLAG_VERIFY)
If $hImage Then
MsgBox(0, 'Сообщение', 'Дескриптор образа $hImage = ' & $hImage)
Else
MsgBox(0, 'Сообщение', 'Ошибка создания образа')
EndIf
_Exit()
Func _Exit()
If $hImage Then _WIM_CloseHandle($hImage) ; Закрывает открытый дескриптор
If $hWim Then _WIM_CloseHandle($hWim) ; Закрывает открытый дескриптор
_WIM_Shutdown() ; Выгружает wimgapi.dll
Exit
EndFunc