| xHarbour Reference Documentation > Function Reference |
![]() |
![]() |
![]() |
Creates a key/value pair in the registry.
SetRegistry( <nHKEY> , ;
<cRegPath>, ;
<cRegKey> , ;
<xValue> ) --> lSuccess
The function returns .T. (true), when the specified key/value pair is created in the registry. Otherwise .F. (false) is returned.
Function SetRegistry() creates a key/value pair in the Windows registry. If the key <cRegKey> exists already, the value <xValue> is assigned. The value may only be of Valtype() "C", "D", "L" or "N". Other data types are not supported.
A Date value is converted with function StoD() an stored as a REG_SZ value in the registry
A logical value will be converted to 1 or 0 and set as REG_DWORD.
Winreg.ch
Winreg.ch adds quite some overhead to an application program by adding structure definitions. If this is not required, Winreg.ch does not need to be #included. SetRegistry() recognizes the following values for <nHKEY> in addition to the HKEY_* #define constants:
Registry keys
| Registry Key | Equivalent value |
|---|---|
| HKEY_LOCAL_MACHINE | 0 |
| HKEY_CLASSES_ROOT | 1 |
| HKEY_CURRENT_USER | 2 |
| HKEY_CURRENT_CONFIG | 3 |
| HKEY_LOCAL_MACHINE | 4 |
| HKEY_USERS | 5 |
Note: on Windows NT, 2000, XP or later, the user may need certain security rights in order to be able to change the registry.
| See also: | QueryRegistry(), GetRegistry() |
| Category: | Registry functions , xHarbour extensions |
| Header: | Winreg.ch |
| Source: | rtl\winreg.prg |
| LIB: | xhb.lib |
| DLL: | xhbdll.dll |
// The example creates a new registry path and fills it with
// five new key/value pairs. The new created keys are read from
// the registry and displayed.
* #include "Winreg.ch" // not needed for this example
#define HKEY_CURRENT_USER 0 // use alternative #define constant
PROCEDURE Main
LOCAL nHKey := HKEY_CURRENT_USER
LOCAL cRegPath := "SOFTWARE\MyApplication"
LOCAL hRegKey := Hash()
LOCAL cRegKey
hRegKey["Version"] := "1.0"
hRegKey["Creationdate"] := Date()
hRegKey["Demo"] := .T.
hRegKey["Trialdays"] := 30
hRegKey["rootpath"] := "C:\programs\myapp\"
HEval( hRegKey, ;
{|cKey, xVal| SetRegistry( nHKey, cRegPath, cKey, xVal ) ;
} )
FOR EACH cRegKey IN hRegKey:keys
? cRegKey, "=", GetRegistry( nHKey, cRegPath, cRegKey )
NEXT
RETURN
http://www.xHarbour.com