MSI.LocateComponent

table MSI.LocateComponent ( string ComponentGUID )
Примеры

Описание

Вызывает функцию MsiLocateComponent для получения полного пути к установленному компоненту без кода продукта. Эта функция пытается определить продукт при помощи действия MsiGetProductCode, но не гарантирует поиск верного продукта для вызывающего. По возможности, всегда следует вызывать действие MSI.GetComponentPath.

Параметры

ComponentGUID

(строка) Идентификатор (GUID) установленного компонента. Эта строка должна быть строкой идентификатора, заключенной в фигурные скобки, например: "{1638E94C-DA3C-44BD-88FB-5CC76B59BE46}".

Возврат

ResultVariable

(таблица) При отказе в выполнении возвращает значение nil, в случае успешного выполнения возвращается таблица со следующими индексами:

InstallState

(число) Состояние установки компонента, представленное одним из следующих значений:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
INSTALLSTATE_NOTUSED-7Запрашиваемый компонент отключен на компьютере.
INSTALLSTATE_SOURCEABSENT-4Источник компонента недоступен.
INSTALLSTATE_MOREDATA-3Предоставленный буфер очень мал.
INSTALLSTATE_INVALIDARG-2Один из параметров функции неверен.
INSTALLSTATE_UNKNOWN-1Код продукта или идентификатор ID компонента неизвестен.
INSTALLSTATE_ABSENT2Компонент не установлен.
INSTALLSTATE_LOCAL3Компонент установлен локально.
INSTALLSTATE_SOURCE4Компонент установлен для запуска из источника.

ComponentPath

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

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

Примеры

Пример 1

-- Get the component path.
-- Получаем путь к компоненту.
tbComponent = MSI.LocateComponent("{1638E94C-DA3C-44BD-88FB-5CC76B59BE46}");

-- Check if it was successful and that the component is installed locally.
-- Проверяем, было ли действие успешным и что этот компонент установлен локально.
if (tbComponent) then
    if (tbComponent.InstallState == INSTALLSTATE_LOCAL) then
        Dialog.Message("Information", "The component is installed locally.");
    end
else
    -- Show a message with the error.
    -- Показываем сообщение с ошибкой.
    nError = Application.GetLastError();
    Dialog.Message("Error", _tblErrorMessages[nError], MB_OK, MB_ICONEXCLAMATION);
end
Проверяем установлен ли локально компонент с GUID "{1638E94C-DA3C-44BD-88FB-5CC76B59BE46}" и показываем информационное сообщение. Если действие неудачно, показываем сообщение об ошибке.
Смотрите также: Связанные действия