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) |