下面这个是基于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(); 
}

转载于:https://www.cnblogs.com/mfryf/archive/2012/02/12/2347974.html

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

  1. 注册表各键值保存的内容及其对用的作用(功能)(不完善,有补充的评论指出供大家学习参考)

    从Windows 95开始,Microsoft在Windows中引入了注册表(英文为REGISTRY)的概念(实际上原来在Windows NT中已有此概念).注册表是Windows 95及Window ...

  2. C#获取注册表指定键值

    某些程序必须依赖指定运行环境.那么读取注册表来判断此电脑是否有执行环境是个很不错的办法.因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的.那么首先就需要找到那个具体的独一无二 ...

  3. windows注册表几大键值

    什么是注册表?  从Windows 95开始,Microsoft在Windows中引入了注册表(英文为REGISTRY)的概念(实际上原来在Windows NT中已有此概念).注册表是Windows ...

  4. 批量删除注册表特定键值的小技巧

    今天使用虚拟机的时候发现了一个小的问题,我的ubunto需要使用18.04,但是我用的虚拟机是版本12的,不能正常加载,但是在别人的电脑上就能成功,看他们的版本是15.0的所以我也想吧我的虚拟机升级到 ...

  5. # 删除注册表项键值_强制删除:让你的电脑上不再有“顽固”程序

    微信搜一搜麦克NO1对于很多用户来说,在日常使用电脑的时候,经常会有意无意的安装一些程序.而这些程序也是严重影响了电脑的运行速度.所以,在忍无可忍的情况下,需要将这些"顽固"程序卸 ...

  6. java读取注册表_Java通过CMD方式读取注册表任意键值对代码实践

    需要读取如图所示注册表[HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7]节点下的[DateTime]的值 直接上代码: package com.beibei.common.u ...

  7. js读取注册表的键值

    try { var shell = new ActiveXObject("WScript.Shell"); --读取注册表 var  key  = shell.RegRead(&q ...

  8. vc++高级班之注册表篇[1]---认识并操作注册表

    ①.注册表简介: 注册表到底是个什么东西? 注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息.可以说计算机上所有针对硬件.软件.网络的操 ...

  9. Internet Explorer 设置 注册表中设置IE(Windows安全设置之注册表项)

    Windows安全设置之注册表项 在IE4.0以上的版本中,IE的安全设置一般都存贮在这两个地方: 1.HKEY_CURRENT_USER\Software\Microsoft\Windows\Cur ...

最新文章

  1. [MySQL FAQ]系列 -- mysql是否支持跨库事务
  2. 计算摄影 | 计算机如何学会自动裁剪图片(自动构图)?
  3. 【深度学习】正则化技术全面了解
  4. 【转】如何理解c和c++的复杂类型声明
  5. 微软起诉Google阻止前高管跳槽
  6. Java容器的遍历之增强for循环
  7. KMP 算法 学习 整理
  8. 软件工程——快速掌握面向对象开发方法
  9. Git常用命令——分支操作
  10. 谷歌为何会选用TypeScript?
  11. DecimalFormat的用法
  12. 公务员Python培训
  13. Java方法 (含计算器代码)
  14. 转载---美团外卖系统架构演进与稳定性的探索
  15. python 四元数转欧拉角
  16. 【数说人物】170个热搜刷屏网络 起底康巴汉子丁真爆红路径
  17. 数学建模技巧总结(一)
  18. adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )
  19. 视频播放器的html代码(二)
  20. matlab二维数组实例(提取数据)

热门文章

  1. html中的空格表示
  2. ubuntu16.04 虚拟机装机后常用操作
  3. swoole task 异步任务 注释请忽略 自己加的不一定对 别误导大家。。。。。。
  4. springboot应用启动原理(一) 将启动脚本嵌入jar
  5. O2O、C2C、B2B、B2C的区别
  6. 缓存雪崩处理方法-双缓存思路
  7. Silverlight 2.5D RPG游戏技巧与特效处理:(十八)开场卷轴与动态窗口
  8. 转:过度疲劳的27个信号与预防方法
  9. linux停止rpc服务,Linux系统安装启动rpc服务,解决Loadrunner监控不到资源问题
  10. 华三刀片服务器如何安装系统,刀片服务器及其操作系统的安装方法及系统专利_专利查询 - 天眼查...