InstallShield 2013 ยป InstallScript Language Reference
Note: To call this function in a Basic MSI setup, you must first create a custom action for the entry-point function, execute the custom action in a sequence or as the result of a dialog's control event, and then build the release.
/*--------------------------------------------------------------*\
*
* InstallShield Example Script
*
* Demonstrates the RegDBSetKeyValueEx and RegDBGetKeyValueEx
* functions.
*
* RegDBCreateKeyEx is called to create a test subkey in the
* HKEY_CLASSES_ROOT key. The value of a key is set in integer
* form using the REGDB_NUMBER option of the RegDBSetKeyValueEx
* function. After this value is set, it is retrieved using
* the RegDBGetKeyValueEx function and verified.
*
\*--------------------------------------------------------------*/
#define TITLE "RegDBSetKeyValueEx & RegDBGetKeyValueEx"
// Include Ifx.h for built-in InstallScript function prototypes.
#include "Ifx.h"
export prototype ExFn_RegDBGetKeyValueEx(HWND);
function ExFn_RegDBGetKeyValueEx(hMSI)
STRING szKey, szNumName, szNumValue, svNumValue, szTitle, szMsg;
NUMBER nType, nSize, nvType, nvSize;
begin
// Create a key to test.
szKey = "TestKey";
if (RegDBCreateKeyEx (szKey, "") < 0) then
MessageBox ("RegDBCreateKeyEx failed.", SEVERE);
abort;
endif;
// Set up parameters for call to RegDBSetKeyValueEx.
szNumName = "TestValue";
szNumValue = "12345";
nType = REGDB_NUMBER;
nSize = -1;
// Set a key name and a value associated with it.
if (RegDBSetKeyValueEx (szKey, szNumName, nType, szNumValue,
nSize) < 0) then
MessageBox ("RegDBSetKeyValueEx failed.", SEVERE);
abort;
else
// Display what RegDBSetKeyValueEx has done.
szMsg = "%s set to: %s";
SprintfBox (INFORMATION, TITLE, szMsg, szNumName, szNumValue);
endif;
// Retrieve key value information.
if (RegDBGetKeyValueEx (szKey, szNumName, nvType, svNumValue,
nvSize) < 0) then
MessageBox ("RegDBGetKeyValueEx failed.", SEVERE);
else
// Check to see if the value returned is the same as the value set.
if (nvType != REGDB_NUMBER) then
MessageBox ("Type comparison failed.", SEVERE);
endif;
if (svNumValue != szNumValue) then
MessageBox ("Subkey value comparison failed.", SEVERE);
endif;
// Display what RegDBGetKeyValueEx retrieved.
szMsg = "%s has value: %s\n\nThis data is %d bytes.";
SprintfBox (INFORMATION, TITLE, szMsg, szNumName, svNumValue, nvSize);
endif;
// Delete the created test key.
if (RegDBDeleteKey (szKey) < 0) then
MessageBox ("RegDBDeleteKey failed.", SEVERE);
endif;
end;
InstallShield Help LibraryJune 2013 |
Copyright Information | Contact Us |