Managing information in the Windows registry
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:
1 |
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion |
To override the WIN.INI file, create
a subkey in INIFILEMAPPING called WIN.INI with
the following value:
1 |
#usr:softwaremicrosoftwindowscurrentversionextensions |
The examples that follow use the registry to keep track of
database connection parameters. The connection parameters are maintained
in the registry in the MyCoMyAppdatabase branch
under HKEY_CURRENT_USERSoftware.
Reading values from the registry
The following script retrieves values for the default Transaction
object from the registry.
1 |
RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbms", sqlca.DBMS)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "database", sqlca.database)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "userid", sqlca.userid)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbpass", sqlca.dbpass)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "logid", sqlca.logid)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "logpass", sqlca.logpass)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "servername", sqlca.servername)<br />RegistryGet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbparm", sqlca.dbparm) |
Setting values in the registry
The following script stores the values for the Transaction
object in the registry:
1 |
RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbms", sqlca.DBMS)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "database", sqlca.database)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "userid", sqlca.userid)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbpass", sqlca.dbpass)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "logid", sqlca.logid)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "logpass", sqlca.logpass)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "servername", sqlca.servername)<br />RegistrySet("HKEY_CURRENT_USERSoftwareMyCoMyAppdatabase", &<br /> "dbparm", sqlca.dbparm) |