MSI.GetComponentPath

table MSI.GetComponentPath ( string ProductCode,
string ComponentGUID )
Примеры

Описание

Вызывает функцию MsiGetComponentPath для получения полного пути к установленному компоненту. Если путь ключа компонента является ключом реестра, тогда возвращается ключ реестра.

Параметры

ProductCode

(строка) "Код продукта" обслуживаемого продукта. Эта строка должна быть строкой идентификатора, заключенной в фигурные скобки, например: "{78B82B0B-9AD9-40C0-B994-F72C21B52723}".

ComponentGUID

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

Возврат

ResultVariable

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

InstallState

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

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

ComponentPath

(строка) Путь к компоненту. Если произошла ошибка при получении пути к компоненту (то есть, параметр InstallState возвращает состояние INSTALLSTATE_UNKNOWN), тогда это значение таблицы будет равно nil. Если компонент является ключом реестра, корневой раздел реестра будет представлен цифрами. Если он является путем к подразделу реестра, в конце пути ключа будет стоять обратная косая черта (бакслэш). Если же это путь к значению ключа реестра, обратной косой черты (бакслэш) в конце пути ключа не будет. Например, путь реестра на 32-битной операционной системе HKEY_CURRENT_USER\SOFTWARE\Microsoft возвращается как "01:\SOFTWARE\Microsoft\". Разделы реестра возвращаемые на 32-битной операционной системе определяются как показано в таблице ниже.

Примечание: На 64-битных операционных системах, для отличия от путей ключей реестра на 32-битных операционных системах, к числовому значению раздела реестра в этой таблице будет прибавлено значение 20. Например, если путь компонента является ключом реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft на 64-битной операционной системе, будет возвращен как "21:\SOFTWARE\Microsoft\".


КОРНЕВОЙ РАЗДЕЛ РЕЕСТРА
ROOT
ЗНАЧЕНИЕ
VALUE
HKEY_CLASSES_ROOT00
HKEY_CURRENT_USER01
HKEY_LOCAL_MACHINE02
HKEY_USERS03

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

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

Примеры

Пример 1

-- Get the component path.
-- Получаем путь к компоненту.
tbComponent = MSI.GetComponentPath("{78B82B0B-9AD9-40C0-B994-F72C21B52723}", "{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
Смотрим локально ли установлен компонент "{1638E94C-DA3C-44BD-88FB-5CC76B59BE46}" и показываем информационное сообщение. Если действие не выполняется показываем диалоговое окно с сообщением об ошибке.
Смотрите также: Связанные действия