C/C++读写注册表中二进制数据读写注册表中二进制数据(代码示例代码示例)
主要介绍了使用Windows API 函数中的RegOpenKeyEx()函数和RegSetValueEx()函数来实现对注册表某项写入
二进制键值,需要的朋友可以参考下
1、、RegOpenKeyEx 函数:函数:
原形:
LONG RegOpenKeyEx(
HKEY hKey, // 要打开主键名
LPCTSTR lpSubKey, // 需要打开的子键或路径
DWORD ulOptions, // 保留,为0
REGSAM samDesired, // 操作权限标志
PHKEY phkResult // 指向你打开键的句柄 (通过指针返回)
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS.
解释:该函数负责打开指定的键或子键,如果不存在他不建立。
查看微软官方文档:http://msdn.microsoft.com/zh-cn/aa912084
2、、RegSetValueEx函数:函数:
原形:
LONG RegSetValueEx(
HKEY hKey, // 已打开的键的句柄
LPCTSTR lpValueName, // 要查询值的名称,传如\"\"为查询键下的默认值
DWORD Reserved, // 保留
DWORD dwType, // 写入键值的类型
CONST BYTE *lpData, // 变量数据的地址
DWORD cbData // 变量的长度
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解释:设置某子键下特定名称的值。
查看微软官方文档:http://msdn.microsoft.com/zh-cn/aa916717#
3、、RegQueryValueEx函数:函数:
原形:
LONG RegQueryValueEx(
HKEY hKey, // 已打开的键的句柄
LPTSTR lpValueName, // 要查询值的名称,传如\"\"为查询键下的默认值
LPDWORD lpReserved, // 保留,为0
LPDWORD lpType, // 查询的类型
LPBYTE lpData, // 数据存放的地址
LPDWORD lpcbData // 数据长度+1
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解释:读取某子键下特定名称的值。
查看微软官方文档:http://msdn.microsoft.com/zh-cn/aa914692
写入二进制数据代码示例:
# include <windows.h>
# include <tchar.h>
int main(void)
{
HKEY hKey;
HKEY rootKey = HKEY_CURRENT_USER;
TCHAR * subKey = "Software\Microsoft\Windows\CurrentVersion\Explorer"
"\MenuOrder\Start Menu2\Programs\test";
TCHAR * keyValue = "c:\test.exe";
long openReg;
评论0