C/c++读写注册表中二进制数据(代码示例)

  

<强> 1,RegOpenKeyEx函数:

  

原形:   

  

LONG  RegOpenKeyEx (
才能   ,,,,,,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 根键,,,,,,,//,已打开的键的句柄,,
  ,,,,,,LPCTSTR  lpValueName,,//,要查询值的名称,传如\“\”为查询键下的默认值,,
  ,,,,,,DWORD 保留,,,,//,保留,,
  ,,,,,,DWORD  dwType,,,,,//,写入键值的类型,,
  ,,,,,,CONST  BYTE  * lpData,,//,变量数据的地址,,
  ,,,,,,DWORD  cbData ,,,,//,变量的长度,,
  ,,,,,,,,

     

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

  

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

  

<强> 3,RegQueryValueEx函数:

  

原形:   

  

LONG  RegQueryValueEx (
才能   ,,,,,,HKEY 根键,,,,,,,//,已打开的键的句柄,,
  ,,,,,,LPTSTR  lpValueName,,//,要查询值的名称,传如\“\”为查询键下的默认值,,
  ,,,,,,LPDWORD  lpReserved,,//,保留,为0,,
  ,,,,,,LPDWORD  lpType,,,,//,查询的类型,,
  ,,,,,,LPBYTE  lpData,,,,,//,数据存放的地址,,
  ,,,,,,LPDWORD  lpcbData ,,//,数据长度+ 1,,
  ,,,,,,,,

     

,,返回值:不成功返回非0,成功返回ERROR_SUCCESS ,
  解才能释:读取某子键下特定名称的值。

  

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

  

写入二进制数据代码示例:
  

        # include & lt; windows.h>   # include & lt; tchar.h>      int主要(空白)   {   根键根键;   根键rootKey=HKEY_CURRENT_USER;   TCHAR *注册表子项="微软软件\ \ \ \ Windows \ \ CurrentVersion \ \探险家”   “\ \ MenuOrder \ \开始Menu2 \ \程序\ \测试”;   TCHAR * keyValue=" c: \ \ test.exe”;   长openReg;   长setRegValue;   DWORD dwType=REG_BINARY;   字节值[256]=" c: \ \ test.exe”;   openReg=RegOpenKeyEx(注册表子项,rootKey 0 KEY_WRITE,根键);   如果(openReg==ERROR_SUCCESS)   {   setRegValue=https://www.yisu.com/zixun/RegSetValueEx(根键,_T(“订单”),0,dwType,价值,256);   如果(setRegValue=https://www.yisu.com/zixun/=ERROR_SUCCESS)   {   对话框(NULL, _T(“写成功”),_T(“调用”),MB_OK);   }   其他的   {   对话框(NULL, _T(“写失败”),_T(“调用”),MB_OK);   }   RegCloseKey(根键);   }   返回0;   }      

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

        # include & lt; windows.h>   # include & lt; tchar.h>      int主要(空白)   {   根键根键;   根键rootKey=HKEY_CURRENT_USER;   TCHAR *注册表子项="微软软件\ \ \ \ Windows \ \ CurrentVersion \ \探险家”   “\ \ MenuOrder \ \开始Menu2 \ \程序\ \测试”;   长openRegResult;   长readRegResult;   DWORD dwType=REG_BINARY;   REGSAM模式=KEY_READ;   字节值[256]={0};   字长度=256;   注册表子项,openRegResult=RegOpenKeyEx (rootKey 0,模式,及根键);   如果(ERROR_SUCCESS==openRegResult)   {   readRegResult=RegQueryValueEx(根键,_T(“订单”),0,,dwType,价值,和长度);   如果(ERROR_SUCCESS==readRegResult)   {   对话框(NULL, _T(价值),_T(“调用”),MB_OK);   }   其他的   {   对话框(NULL, _T(“错误”),_T(“调用”),MB_OK);   }   }   RegCloseKey(根键);   返回0;   }      

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

C/c++读写注册表中二进制数据(代码示例)