System.SetRestorePoint

number System.SetRestorePoint ( number EventType,
number RestorePointType,
number SequenceNum,
string Description )
Примеры

Описание

Создает на компьютере точку восстановления системы и возвращает использованный при этом, порядковый номер. Для создания надлежащей точки восстановления, это действие нужно вызвать дважды. Первый раз параметр EventType должен быть установлен как SYSTEM_CHANGE_BEGIN. На второй раз, параметр EventType должен быть установлен как SYSTEM_CHANGE_END.

Примечание: Служба восстановления системы может быть доступна только на Windows XP или более поздней операционной системе и может потребовать привилегий администратора. Для определения доступна или нет служба восстановления системы можно использовать действие System.IsSystemRestoreAvailable.
Служба восстановления системы не восстанавливает пользовательские данные или документы, так что она не вызовет утери пользователем его файлов, эл.почты, истории просмотра или избранного. Системой восстановления контролируются только определенные типы файлов. Для более подробной информации смотрите тему Расширения файлов, контролируемые программой восстановления. Система восстановления также сохраняет полный снимок реестра.

Параметры

EventType

(число) Тип события для службы восстановления системы. Выбор из:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
SYSTEM_CHANGE_BEGIN100Объявление, что изменения системы начались.
SYSTEM_CHANGE_END101Объявление, что изменения системы закончились.

RestorePointType

(число) Тип устанавливаемой точки восстановления. Выбор из:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
SYS_RESTORE_APP_INSTALL0Точка восстановления упаковывает установку приложения.
SYS_RESTORE_APP_UNINSTALL1Точка восстановления упаковывает удаление приложения.
SYS_RESTORE_APP_DDRIVER_INSTALL 10Точка восстановления упаковывает установку драйвера устройства.
SYS_RESTORE_MODIFY_SETTINGS12Точка восстановления упаковывает изменения параметров приложения. (Восстанавливаются только файлы с расширениями, контролируемые программой восстановления)
SYS_RESTORE_CANCELLED_OPERATION13Операция, для упаковки которой была создана точка восстановления, была отменена. В результате точка восстановления должна быть удалена. Например, программа установки будет использовать этот флаг, когда пользователь отменяет установку.

Примечание: Точку восстановления можно удалить при помощи действия System.RemoveRestorePoint.

SequenceNum

(число) Порядковый номер точки восстановления. При вызове этого действия с параметром EventType, установленным как SYSTEM_CHANGE_BEGIN, в качестве данного параметра проходит значение 0. Это приведет к действию по возвращению порядкового номера созданной точки восстановления. Используем этот порядковый номер во всех последующих вызовах для любых действий с точкой восстановления.

Description

(строка) Описание точки восстановления, которое будет показано в утилите System Restore (Восстановление системы) от Microsoft. Можно использовать не более 64 символов.

Возврат

ResultVariable

(число) Возвращает порядковый номер, что был использован при создании точки восстановления системы. Можно использовать действие Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

nSeqNum = System.SetRestorePoint(SYSTEM_CHANGE_BEGIN, SYS_RESTORE_APP_INSTALL, 0, "My Program Install");
Начинаем установку точки восстановления системы при установке приложения и возвращаем порядковый номер в переменной "nSeqNum".

Пример 2

-- Check to see if the system has system restore capability
-- Проверяем, возможно ли восстановление системы
bSysRestoreAvailable = System.IsSystemRestoreAvailable();

if bSysRestoreAvailable then
    -- Restore is available, mark start point
    -- Восстановление доступно, отмечаем начальную точку
    nSequenceNum = System.SetRestorePoint(SYSTEM_CHANGE_BEGIN, SYS_RESTORE_APP_INSTALL, 0, "Installed Sample Product v. 3.7")
else
    -- Restore is unavailable, confirm with the user to continue
    -- Восстановление недоступно, предупреждение и запрос пользователю о продолжении
    nChoice = Dialog.Message("Restore Unavailable", "Your system does not support System Restore. Do you want to continue with the setup?", MB_YESNO, MB_ICONSTOP);

    if nChoice == 7 then
        -- The user chose not to continue, exit the script
        -- Пользователь решил не продолжать, выходим из скрипта
        Application.ExitScript();
    end
end

-- DO UPDATE TASKS HERE
-- ЗДЕСЬ ДЕЛАЕМ ОБНОВЛЕНИЯ

if bSysRestoreAvailable then
    -- Restore is available, mark end point
    -- Восстановление доступно, отмечаем конечную точку
    nSequenceNum = System.SetRestorePoint(SYSTEM_CHANGE_END, SYS_RESTORE_APP_INSTALL, nSequenceNumber, "Installed Sample Product v. 3.7")

    -- Write sequence number to the registry for later use
    -- Записываем порядковый номер в реестр для дальнейшего использования
    Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\CompanyName\\ProductName\\RestorePointInfo", "SequenceNumber", nSequenceNum, REG_SZ)
end
Проверяем, поддерживает ли система пользователя восстановление системы. Если не поддерживает, запрашиваем пользователя будет ли он продолжать установку. Если же система поддерживает восстановление или пользователь выбирает продолжение установки, устанавливаем точку восстановления и завершаем задачи по установке.
Смотрите также: Связанные действия