Functions for accessing the Registry
PowerBuilder provides several functions you can use to manage application settings in the Windows registry.
Function |
Description |
---|---|
RegistryDelete |
Deletes a key or a value in a key in the Windows registry. |
RegistryGet |
Gets a value from the Windows registry. |
RegistryKeys |
Obtains a list of the keys that are child items (subkeys) one level below a key in the Windows registry. |
RegistrySet |
Sets the value for a key and value name in the Windows registry. If the key or value name does not exist, RegistrySet creates a new key or value name. |
RegistryValues |
Obtains a list of named values associated with a key. |
For the complete information for these functions, see the PowerScript Reference.
Overriding initialization files
You can use the ProfileString functions to obtain information from the registry instead of from an initialization file. Create a new key called INIFILEMAPPING at the following location:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
To override the WIN.INI file, create a subkey in INIFILEMAPPING called WIN.INI with the following value:
#usr:software\microsoft\windows\currentversion\extensions
The examples that follow use the registry to keep track of database connection parameters. The connection parameters are maintained in the registry in the MyCo\MyApp\database branch under HKEY_CURRENT_USER\Software.
Reading values from the registry
The following script retrieves values for the default Transaction object from the registry.
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbms", sqlca.DBMS) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "database", sqlca.database) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "userid", sqlca.userid) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbpass", sqlca.dbpass) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "logid", sqlca.logid) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "logpass", sqlca.logpass) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & �servername", sqlca.servername) RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbparm", sqlca.dbparm)
Setting values in the registry
The following script stores the values for the Transaction object in the registry:
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbms", sqlca.DBMS) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "database", sqlca.database) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "userid", sqlca.userid) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbpass", sqlca.dbpass) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "logid", sqlca.logid) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "logpass", sqlca.logpass) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "servername", sqlca.servername) RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", & "dbparm", sqlca.dbparm)