MSI.GetFeatureInfo

table MSI.GetFeatureInfo ( number Handle,
string FeatureID,
number Attributes )
Примеры

Описание

Вызывает функцию MsiGetFeatureInfo для получения информации описывающей элемент.

Параметры

Handle

(число) "Идентификатор" продукта, которому принадлежит элемент. Для получения идентификатора продукта можно использовать действие MSI.OpenProduct.

FeatureID

(строка) Идентификатор элемента, чья информация потребовалась.

Attributes

(число) Атрибуты, что нужно получить. Для объединения значений используйте символ "плюс" ("+"). Выберите один или более атрибутов из следующих:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
INSTALLFEATUREATTRIBUTE_FAVORLOCAL1
INSTALLFEATUREATTRIBUTE_FAVORSOURCE2
INSTALLFEATUREATTRIBUTE_FOLLOWPARENT4
INSTALLFEATUREATTRIBUTE_FAVORADVERTISE8
INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE16
INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE32

Для более подробной информации об этих флагах, посмотрите тему Feature Table в MSDN.

Возврат

ResultVariable

(таблица) Возвращает таблицу индексированную следующими значениями.

КЛЮЧ
KEY
ТИП
TYPE
ОПИСАНИЕ
DESCRIPTION
TitleстрокаЛокализованное название элемента.
DescriptionстрокаЛокализованное описание элемента.

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

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

Примеры

Пример 1

-- Get the product handle.
-- Получаем дескриптор продукта.
nProductHandle = MSI.OpenProduct("{78B82B0B-9AD9-40C0-B994-F72C21B52723}");

if (nProductHandle) then
    tbFeatureInfo = MSI.GetFeatureInfo(nProductHandle, "MyTargetFeature", INSTALLFEATUREATTRIBUTE_FAVORLOCAL);
    if (tbFeatureInfo) then
        -- Show a dialog with the feature info.
        -- Показываем диалоговое окно с информацией элемента.
        Dialog.Message("Feature Info", "Title: " .. tbFeatureInfo.Title .. "\r\nDescription: " .. tbFeatureInfo.Description);
    else
        -- An error occurred.
        -- Произошла ошибка.
        nError = Application.GetLastError();
        Dialog.Message("Error", _tblErrorMessages[nError], MB_OK, MB_ICONEXCLAMATION);
    end

    -- Finished using the product handle, so close it.
    -- Заканчивается использование дескриптора продукта, так что закрываем его.
    if (not MSI.CloseHandle(nProductHandle)) then
        Dialog.Message("Error", "Failed to close product handle.");
    end
else
    Dialog.Message("Error", "Failed to get product handle.");
end
Получаем название и описание элемента "MyTargetFeature" и показываем их в диалоговом окне сообщения.
Смотрите также: Связанные действия