RegSetValueEx功能将数据存储在打开的注册表项的值字段中。它还可以为指定的键设置附加值和类型信息。
LONG RegSetValueEx(
HKEY 【的hKeyru-Latn】, | //设置键值的句柄 |
LPCTSTR 【lpValueName】, | //要设置的值的地址 |
DWORD 【保留的】, | //保留 |
DWORD 【dwType】, | //标记值类型 |
CONST BYTE *【的lpData】, | //地址值数据 |
DWORD 【cbData】 | //值数据的大小 |
); |
参数
【的hKeyru-Latn】
标识当前打开的键或任何以下预定义保留句柄值:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
【lpValueName】
指向一个字符串,其中包含要设置的值的名称。如果该名称的值不存在于密钥中,则该函数将其添加到密钥中。
如果此参数为NULL或指向空字符串,并且【dwType】参数为REG_SZ类型,则此函数设置RegSetValue函数设置的相同值。
【保留的】
Reserved; must be zero.
【dwType】
指定要作为值的数据存储的信息的类型。此参数可以是以下值之一:
值 | 含义 |
REG_BINARY | 任何形式的二进制数据。 |
REG_DWORD | 一个32位数字。 |
REG_DWORD_LITTLE_ENDIAN | 32位数字的小端格式(与REG_DWORD相同)。在小端格式中,字的最高有效字节是高字节。这是运行Windows NT和Windows 95的计算机最常用的格式。 |
REG_DWORD_BIG_ENDIAN | 一个32位数字的big-endian格式。在big-endian格式中,一个字的最高有效字节是低位字节。 |
REG_EXPAND_SZ | 一个空值终止的字符串,包含对环境变量的未扩展引用(例如“%PATH%”)。它将是Unicode或ANSI字符串,具体取决于您是使用Unicode还是ANSI函数。 |
REG_LINK | 一个Unicode符号链接。 |
REG_MULTI_SZ | 由两个空字符终止的以null结尾的字符串数组。 |
REG_NONE | 没有定义的值类型。 |
REG_RESOURCE_LIST | 设备驱动程序资源列表。 |
REG_SZ | 一个空值终止的字符串。它将是Unicode或ANSI字符串,具体取决于您是使用Unicode还是ANSI函数。 |
【的lpData】
指向包含要使用指定值名称存储的数据的缓冲区。
【cbData】
指定【的lpData】参数指向的信息的大小(以字节为单位)。如果数据类型为REG_SZ,REG_EXPAND_SZ或REG_MULTI_SZ,则【cbData】必须包含终止空字符的大小。
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。您可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标志的FormatMessage函数来获取错误的一般描述。
备注
值长度受可用内存限制。长值(超过2048个字节)应作为文件存储,并将文件名存储在注册表中。这有助于注册表高效地执行。应用程序元素(如图标,位图和可执行文件)应作为文件存储,而不是放在注册表中。
由【的hKeyru-Latn】参数确定的密钥必须已通过KEY_SET_VALUE访问权限打开。要打开该键,请使用RegCreateKeyEx或RegOpenKeyEx功能。
如果【dwType】是REG_SZ,REG_MULTI_SZ或REG_EXPAND_SZ类型,并且使用此函数的ANSI版本(在包括WINDOWS.H文件之前通过显式调用RegSetValueEx或【不】定义Unicode),指向的数据【的lpData】参数必须是ANSI字符串。字符串在存储在注册表中之前被转换为Unicode。
也可以看看
RegCreateKeyEx, RegFlushKey, RegOpenKeyEx, RegQueryValue, RegQueryValueEx, RegSetValue