[C++]用VC++来设置获得注册表的键值(问题解决)

简介:

下面这个是基于MFC的基本对话写的。。  演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。

void CUserRegDlg::OnOK() 
{
 // TODO: Add extra validation here
 
 CString str = "hello reg";
 DWORD regd = 100;
 BYTE bValues[] = { 0x11, 0x12, 0x55 };

 BYTE Vals[100];
 DWORD lenIt = 100;
 HKEY hk;

 // 打开注册表如果没有则创建, 返回注册表句柄于hk
  if ( ::RegCreateKey( HKEY_LOCAL_MACHINE, "SOFTWARE\\Test\\", &hk ) == ERROR_SUCCESS )
 {
  AfxMessageBox( "打开注册表" );
 }

 // 保存参数到注册表
 try
 {
  /* 
  RegSetValueEx( 根键句柄, 值项名称, 保留参数补0即可, 数据类型, 所设置的数据, 数据长度 )
  用来设置注册表键特定的值,如果数据不存在则创建它  
  */
  /* 保存字符值到注册表 */
  if ( ::RegSetValueEx( hk, "Server", 0, REG_SZ, (LPBYTE)(LPCSTR)str, str.GetLength( ) +1 ) == ERROR_SUCCESS )
  {
   AfxMessageBox( "字符值参数保存成功" );
  }
  
  /* 保存双字节到注册表 */
  if ( ::RegSetValueEx( hk, "part", 0, REG_DWORD, (BYTE*)&regd, sizeof( regd ) ) == ERROR_SUCCESS )
  {
   AfxMessageBox( "双字节参数保存成功" );
  }

  /* 保存二进制到注册表 */ 
  if ( ::RegSetValueEx( hk, "id", 0, REG_BINARY, bValues, 3) == ERROR_SUCCESS )
  {
   AfxMessageBox( "二进制参数保存成功" );
  }  

  /*
  RegQueryValueEx( 根键句柄, 值项名称, 保留参数补0即可, 返回值的数据类型(可为NULL), 返回
       读取的数据, 返回读取数据的长度 )
  用来返回注册表键的特定名称的值
  /*
  /* 获得字符值 */
  if ( ::RegQueryValueEx( hk, "Server", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
  {
   AfxMessageBox( (CString)Vals );
  }

  /* 获得双字节值 */
  if ( ::RegQueryValueEx( hk, "part", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
  {
   AfxMessageBox( (CString)Vals );
  }

  /* 获得二进制值 */ 
  if ( ::RegQueryValueEx( hk, "id", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
  {
   AfxMessageBox( (CString)Vals );
  }

  // 关闭注册表
  ::RegCloseKey( hk );
 }
 catch(...)
 {
  return;
 }

// CDialog::OnOK(); 
}

本文转自博客园知识天地的博客,原文链接:[C++]用VC++来设置获得注册表的键值(问题解决),如需转载请自行联系原博主。


相关文章
|
8天前
|
编译器 开发工具 C++
Dev-C++详细安装教程及中文设置(附带安装包链接)
Dev-C++详细安装教程及中文设置(附带安装包链接)
24 0
|
3月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置软件触发模式(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置软件触发模式(C++)
29 0
|
3月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)
29 1
|
3月前
|
存储 数据管理 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
46 0
|
3月前
|
存储 数据采集 数据处理
Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C++)
Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C++)
36 0
|
5月前
|
存储 Cloud Native Linux
C++Qt表格控件一些常用的设置封装
C++Qt表格控件一些常用的设置封装
|
3月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)
34 0
|
22天前
|
Linux API C++
【C++ 线程包裹类设计】跨平台C++线程包装类:属性设置与平台差异的全面探讨
【C++ 线程包裹类设计】跨平台C++线程包装类:属性设置与平台差异的全面探讨
50 2
|
29天前
|
NoSQL 算法 Shell
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
17 2
|
1月前
|
Unix 编译器 Linux
C++ 环境设置
C++ 环境设置
21 0

热门文章

最新文章