User Tools

Site Tools


putreg_write_value_to_windows_registry_.htm
Navigation:  Language Reference > 13 - Built-in Functions >====== PUTREG (write value to Windows registry) ====== Previous pageReturn to chapter overviewNext page

PUTREG(root, keyname, valuename [,value] [,valuetype] )

blk2blue.jpg

PUTREG Writes a string value into the system registry.
root A LONG integer constant, variable or expression that specifies the root section of the registry to which to write the value. Valid values for this are defined in equates.clw and are as follows:
REG_CLASSES_ROOT
REG_CURRENT_USER
REG_LOCAL_MACHINE
REG_USERS
REG_PERFORMANCE_DATA
REG_CURRENT_CONFIG
REG_DYN_DATA
keyname A STRING constant, variable or expression that contains the key name of the key whose value is to be written. This may contain a path separated by backslash '\' characters. The keyname cannot contain a leading backslash.
valuename A STRING constant, variable or expression that contains the name of the value to be written.
value A STRING constant, variable or expression that contains the value to be written to the registry in the position given. If omitted, an empty string is written to the registry.
valuetype A LONG integer constant, variable or expression that specifies the how to store passed value. If omitted, the default value is REG_SZ (see below).
Supported types (expressed as EQUATES):
REG_NONE value is ignored
REG_SZ value is stored as a null terminated UNICODE string (default)
REG_EXPAND_SZ value is stored as a null terminated UNICODE string that can contain unexpanded environment variables.
REG_MULTI_SZ value is stored as an array of null terminated UNICODE strings. Strings in the array (i.e. in value parameter) are separated with '<;0>' characters. GETREG appends 2 '<;0>' characters at the end of array if they are not given.
REG_DWORD value is stored as a 32 bit number, lower bytes stored first, e.g. value equal to 12345678h is stored as '<;78h,56h,34h,12h>'
REG_DWORD_LITTLE_ENDIAN the same as REG_DWORD
REG_DWORD_BIG_ENDIAN value is stored as a 32 bit number with backward order of bytes, e.g. value equal to 12345678h is stored as '<;12h,34h,56h,78h>'
REG_QWORD value is a 64 bit number, lower bytes are stored first
REG_QWORD_LITTLE_ENDIAN the same as REG_QWORD
REG_BINARY value string is a binary data of any form

The PUTREG procedure places the value into a valuename that exists in the Windows registry. The key and value will be created if it does not exist. If the write to the registry is successful, PUTREG returns 0. If the write to the registry is unsuccessful, the result is a non-zero value.

Vista and Clarion Built-in Registry Functions

On Vista, a (non-elevated) app can READ the registry key HKLM (local machine) with no problems, but as far as writing to the Registry it needs to use HKCU (current user).

If you code sign your executable and run with elevated priveleges then you can write to HKLM

Return Data Type:     LONG

Example:

 PROGRAM

 MAP.

 INCLUDE('EQUATES')

CurrentPath CSTRING(100)

ColorScheme CSTRING(100)

   CODE

   !Set the root directory of Clarion 6 install

   CurrentPath = 'C:\Clarion7'

   IF PUTREG(REG_LOCAL_MACHINE,'SOFTWARE\SoftVelocity\Clarion7','root',CurrentPath)

    MESSAGE('Unable to set the root directory') !post error if non-zero value returned

   END

   !writes the current user's color scheme to the registry

   ColorScheme = 'Windows Standard'

   IF PUTREG(REG_CURRENT_USER,'Control Panel\Current','Color Schemes',ColorScheme)

    MESSAGE('Unable to set the color scheme')   !post error if non-zero value returned

   END

See Also:

GETREG, DELETEREG

putreg_write_value_to_windows_registry_.htm.txt · Last modified: 2021/04/15 15:57 (external edit)