温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C/C++读写注册表中二进制数据的代码是什么

发布时间:2021-10-15 16:39:29 来源:亿速云 阅读:117 作者:柒染 栏目:编程语言

今天就跟大家聊聊有关C/C++读写注册表中二进制数据的代码是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1、RegOpenKeyEx 函数:

原形:

LONGRegOpenKeyEx(      HKEYhKey,//要打开主键名      LPCTSTRlpSubKey,// 需要打开的子键或路径      DWORDulOptions,//保留,为0      REGSAMsamDesired,//操作权限标志      PHKEYphkResult//指向你打开键的句柄 (通过指针返回));

返回值:不成功返回非0,成功返回ERROR_SUCCESS.解释:该函数负责打开指定的键或子键,如果不存在他不建立。

查看微软官方文档:http://msdn.microsoft.com/zh-cn/aa912084

2、RegSetValueEx函数:

原形:

LONGRegSetValueEx(      HKEYhKey,//已打开的键的句柄      LPCTSTRlpValueName,//要查询值的名称,传如\"\"为查询键下的默认值      DWORDReserved,//保留      DWORDdwType,//写入键值的类型      CONSTBYTE*lpData,//变量数据的地址      DWORDcbData//变量的长度);

返回值:不成功返回非0,成功返回ERROR_SUCCESS解释:设置某子键下特定名称的值。

查看微软官方文档:http://msdn.microsoft.com/zh-cn/aa916717#

3、RegQueryValueEx函数:

原形:

LONGRegQueryValueEx(      HKEYhKey,//已打开的键的句柄      LPTSTRlpValueName,//要查询值的名称,传如\"\"为查询键下的默认值      LPDWORDlpReserved,//保留,为0      LPDWORDlpType,//查询的类型      LPBYTElpData,//数据存放的地址      LPDWORDlpcbData//数据长度+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;long setRegValue;DWORD dwType = REG_BINARY;BYTE value[256] = "c:\\test.exe";openReg = RegOpenKeyEx(rootKey, subKey, 0, KEY_WRITE, &hKey);if (openReg == ERROR_SUCCESS){setRegValue = RegSetValueEx(hKey, _T("order"), 0, dwType, value, 256);if (setRegValue == ERROR_SUCCESS){MessageBox(NULL, _T("Write Sucess"), _T("call"), MB_OK);}else{MessageBox(NULL, _T("Write Fail"), _T("call"), MB_OK);}RegCloseKey(hKey);}return 0;}

读取二进制数据的代码示例:

# 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";long openRegResult;long readRegResult;DWORD dwType = REG_BINARY;REGSAM mode = KEY_READ;BYTE value[256] = {0};DWORD length = 256;openRegResult = RegOpenKeyEx(rootKey, subKey, 0, mode, &hKey);if (ERROR_SUCCESS == openRegResult){readRegResult = RegQueryValueEx(hKey, _T("order"), 0, &dwType, value, &length);if (ERROR_SUCCESS == readRegResult){MessageBox(NULL, _T(value), _T("call"), MB_OK);}else{MessageBox(NULL, _T("ERROR"), _T("call"), MB_OK);}}RegCloseKey(hKey);return 0;}

注:读写其他类型的注册表键值与上述的类似,不单独讲解了。

看完上述内容,你们对C/C++读写注册表中二进制数据的代码是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI