Getting and Setting Properties

InstallShield 2014

Project: This information applies to the following project types:

Basic MSI
DIM
InstallScript MSI
Merge Module

Windows Installer properties can contain useful information about the product, the setup, the operating system, and the user. By calling MsiGetProperty and MsiSetProperty, you can directly interact with these properties in your immediate InstallScript custom action.

Note: Note that the MsiGetProperty and MsiSetProperty properties cannot be used for deferred InstallScript custom actions, which do not have access to the active .msi database and do not recognize any Windows Installer properties. They can access only the information that has been written into the execution script.

The following example retrieves the user name from the Windows Installer setup package, confirms the value, gives the user the opportunity to change it, and then writes the new value back into the database:

// Include header file for built-in functions

#include "isrt.h"

// Include header file for MSI API functions and constants

#include "iswi.h"

 

export prototype Func1(HWND);

 

function Func1(hMSI)

    STRING svName;

    NUMBER nvSize, nResponse;

begin

    // Retrieve the user's name from the MSI database

    nvSize = 256;

    MsiGetProperty (hMSI, "USERNAME", svName, nvSize);

    

    nResponse = AskYesNo ("Your name will be registered as " +

                         svName + ". Is this correct?", YES);

 

    if nResponse = NO then

        AskText ("Enter the name that will be registered for " +

                 "this product.", svName, svName);

        MsiSetProperty(hMSI, "USERNAME", svName);

    endif;

end;

See Also