General information
Title:
How to write value to REG_DWORD(registry)
I am able to write to REG_SZ, but when i am changing it to write to REG_DWORD(32 bit number) i am getting error data type mismatch etc.
Can you please change the following code to write to REG_DWORD instead of REG_SZ thank you very much.
################################################################
#define PATH_TO_MY_SUBKEY "Software\aaa_test"
#define HKEY_CLASSES_ROOT ( 2147483648 )
#define HKEY_CURRENT_USER ( 2147483649 )
#define HKEY_LOCAL_MACHINE ( 2147483650 )
#define HKEY_USERS ( 2147483651 )
DECLARE long RegCreateKeyA in advapi32 AS RegCreate long hkey, string subkey, long @phkey
* Creates or opens registry subkey
DECLARE long RegOpenKeyA in advapi32 AS RegOpen long hkey, string subkey, long @phkey
* Opens registry subkey
#define REG_NONE ( 0 ) && No value type
#define REG_SZ ( 1 ) && Unicode nul terminated string
#define REG_EXPAND_SZ ( 2 ) && Unicode nul terminated string
&& (with environment variable references)
#define REG_BINARY ( 3 ) && Free form binary
#define REG_DWORD ( 4 ) && 32-bit number
#define REG_DWORD_LITTLE_ENDIAN ( 4 ) && 32-bit number (same as REG_DWORD)
#define REG_DWORD_BIG_ENDIAN ( 5 ) && 32-bit number
#define REG_LINK ( 6 ) && Symbolic Link (unicode)
#define REG_MULTI_SZ ( 7 ) && Multiple Unicode strings
#define REG_RESOURCE_LIST ( 8 ) && Resource list in the resource map
#define REG_FULL_RESOURCE_DESCRIPTOR ( 9 ) && Resource list in the hardware description
#define REG_RESOURCE_REQUIREMENTS_LIST ( 10 )
DECLARE long RegSetValueEx in advapi32 AS RegSetValue;
long hkey, string value, long reserved, long type, string data, long data_size
Declare Integer RegQueryValueEx In advapi32 AS RegGetValue ;
Integer hkey, String Value, Integer Reserved,;
Integer @Type, String @Data, Integer @Data_size
do set_value with "options1", "1"
?get_value("options1")
PROCEDURE get_value
LPARAMETERS opt_name
aaa = 0
res = 0
type = 0
data = SPACE(101)
data_size = 100
IF RegOpen(HKEY_LOCAL_MACHINE, PATH_TO_MY_SUBKEY, @aaa)=0
=RegGetValue(m.aaa, m.opt_name, @res, @type, @data, @data_size)
=RegClose(m.aaa)
ENDIF
RETURN LEFT(m.data, m.data_size-1)
PROCEDURE set_value
PARAMETERS opt_name, value
aaa = 0
IF RegCreate(HKEY_LOCAL_MACHINE, PATH_TO_MY_SUBKEY, @aaa)=0
=RegSetValue(aaa, m.opt_name, 0, REG_SZ, m.value, LEN(m.value)+1)
=RegClose(aaa)
RETURN .T.
ENDIF
RETURN .F.
######################################################################
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only