OverviewExamples
table MSI.GetComponentPath ( |
Calls the MsiGetComponentPath function to get the full path to an installed component. If the key path for the component is a registry key then the registry key is returned.
(string) The "product code" of the client product. This string must be an identifier string enclosed in curly braces, for example: "{78B82B0B-9AD9-40C0-B994-F72C21B52723}".
(string) The identifier (GUID) of the component to be located. This string must be an identifier string enclosed in curly braces, for example: "{1638E94C-DA3C-44BD-88FB-5CC76B59BE46}".
(table) Returns nil if the call fails or a table if successful with the following indexes:
(number) The install state of the component represented by one of the following values:
CONSTANT |
VALUE |
DESCRIPTION |
INSTALLSTATE_NOTUSED |
-7 |
The component being requested is disabled on the computer. |
INSTALLSTATE_SOURCEABSENT |
-4 |
The component source is inaccessible. |
INSTALLSTATE_INVALIDARG |
-2 |
One of the function parameters is invalid. |
INSTALLSTATE_UNKNOWN |
-1 |
The product code or component identifier is unknown. |
INSTALLSTATE_ABSENT |
2 |
The component is not installed. |
INSTALLSTATE_LOCAL |
3 |
The component is installed locally. |
INSTALLSTATE_SOURCE |
4 |
The component is installed to run from source. |
(string) The path to the component. If there was an error getting the component path (i.e. InstallState returns INSTALLSTATE_UNKNOWN) then this table value will be nil.
If the component is a registry key, the registry roots are represented numerically. If this is a registry subkey path, there is a backslash at the end of the Key Path. If this is a registry value key path, there is no backslash at the end. For example, a registry path on a 32-bit operating system of HKEY_CURRENT_USER\SOFTWARE\Microsoft is returned as "01:\SOFTWARE\Microsoft\". The registry roots returned on 32-bit operating systems are defined as shown in the table below.
Note: On 64-bit operating systems, a value of 20 is added to the numerical registry roots in this table to distinguish them from registry key paths on 32-bit operating systems. For example, a registry key path of HKEY_CURRENT_USER\SOFTWARE\Microsoft is returned as "21:\SOFTWARE\Microsoft\", if the component path is a registry key on a 64-bit operating system.
ROOT |
VALUE |
HKEY_CLASSES_ROOT |
00 |
HKEY_CURRENT_USER |
01 |
HKEY_LOCAL_MACHINE |
02 |
HKEY_USERS |
03 |
If the action fails, nil is returned. You can use Application.GetLastError to determine whether this action failed, and why.
See also: Related Actions