注册表是windows操作系统中用于管理存储系统设置的数据库,在应用程序开发过程中,用注册表为应用程序保存相关不经常变动的参数为普遍采用的方式。开发的应用程序可以在注册表中存储自己的数据,然后在开发的应用程序中调用,提供了非常便利的方式。​

一、实现代码(CPP):​

void CRegEdit::WriteReg()

{

HKEY key ;

if(RegOpenKey(HKEY_LOCAL_MACHINE,strPath,&key)==ERROR_SUCCESS)

{

int idata = 123;

RegSetValueEx(key,_T("COM_LED"),0,REG_DWORD,(BYTE *)&m_Com_LED ,sizeof(DWORD));

RegSetValueEx(key,_T("COM_PLC"),0,REG_DWORD,(BYTE *)&m_Com_PLC ,sizeof(DWORD));

RegSetValueEx(key,_T("COM_OS"),0,REG_DWORD,(BYTE *)&m_Com_OS ,sizeof(DWORD));

RegSetValueEx(key,_T("LED_VALE"),0,REG_DWORD,(BYTE *)&m_LED_Value ,sizeof(DWORD));

RegSetValueEx(key,_T("FILE"),0,REG_SZ,(BYTE *)m_strFile.GetBuffer(0),m_strFile.GetLength()*sizeof(DWORD));

RegCloseKey(key);

return ;

}

if(RegCreateKey(HKEY_LOCAL_MACHINE,strPath,&key)==ERROR_SUCCESS)

{

RegSetValueEx(key,_T("COM_LED"),0,REG_DWORD,(BYTE *)&m_Com_LED ,sizeof(DWORD));

RegSetValueEx(key,_T("COM_PLC"),0,REG_DWORD,(BYTE *)&m_Com_PLC ,sizeof(DWORD));

RegSetValueEx(key,_T("COM_OS"),0,REG_DWORD,(BYTE *)&m_Com_OS ,sizeof(DWORD));

RegSetValueEx(key,_T("LED_VALE"),0,REG_DWORD,(BYTE *)&m_LED_Value ,sizeof(DWORD));

RegSetValueEx(key,_T("FILE"),0,REG_SZ,(BYTE *)m_strFile.GetBuffer(0),m_strFile.GetLength()*sizeof(DWORD));

RegCloseKey(key);

return ;

}

}

bool CRegEdit::ReadReg()

{

HKEY key ;

if(RegOpenKey(HKEY_LOCAL_MACHINE,strPath,&key)==ERROR_SUCCESS)

{

DWORD dwType = REG_DWORD;

DWORD szType = REG_SZ ;

DWORD dwData;

char chData[1024];

DWORD dwSize ;

DWORD szSize = 1024 ;

CString str ;

RegQueryValueEx(key,_T("COM_LED"),0,&dwType,(BYTE *)&dwData,&dwSize);

SetCom_LED(dwData);

RegQueryValueEx(key,_T("COM_PLC"),0,&dwType,(BYTE *)&dwData,&dwSize);

SetCom_PLC(dwData);

RegQueryValueEx(key,_T("COM_OS"),0,&dwType,(BYTE *)&dwData,&dwSize);

SetCom_OS(dwData);

RegQueryValueEx(key,_T("LED_VALE"),0,&dwType,(BYTE *)&dwData,&dwSize);

SetLEDValue(dwData);

RegQueryValueEx(key,_T("FILE"),0,&szType,(BYTE *)&chData,&szSize);

str.Format(_T("%s"),chData);

SetFilePath(str);

return true;

}

WriteReg();//for defualt

return true ;

}

二、声明(.h)

class CRegEdit

{

public:

CRegEdit(void);

~CRegEdit(void);

void WriteReg();

bool ReadReg();

void SetCom_LED(int inum);

int GetCom_LED();

void SetCom_PLC(int inum);

int GetCom_PLC();

void SetCom_OS(int inum);

int GetCom_OS();

void SetLEDValue(int iValue);

int GetLEDValue();

void SetFilePath(CString strFile);

CString GetFilePath();

private:

CString strPath ;

int m_Com_LED ;

int m_Com_PLC;

int m_Com_OS;

int m_LED_Value ;

CString m_strFile;

};​

三、系统调用​

void CRegDlg::OnBnClickedWriteReg()

{

// TODO: 在此添加控件通知处理程序代码

m_Reg.WriteReg();

}

void CRegDlg::OnBnClickedReadReg()

{

// TODO: 在此添加控件通知处理程序代码

m_Reg.ReadReg();

}

博客:http://blog.sina.com.cn/s/blog_141793b190102vsba.html

VS2010开发应用程序读写注册表相关推荐

  1. java读写注册表的两种方式,Preferences与jRegistry

    打开注册表方式:电脑上的windows键加r键打开运行程序->输入指令regedit->随即系统便会提示你是否要运行,选择"是"就行了 由于java程序是"w ...

  2. C#读写注册表及 WOW6432Node 问题

    C# 读写注册表技术很成熟,示例代码如下: // Create & Write string regpath = @"Software\MySoft\Soft1"; Reg ...

  3. qsettings删除注册表_【Qt】QSettings读写注册表、配置文件【转】

    简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见" ...

  4. linux应用程序注册表,如何打开 Linux 中 Windows 程序的注册表编辑器

    在我们借助CrossOver这款兼容软件在Linux操作系统中运行Windows应用程序的过程中,有的时候我们可能会遇到有关要求,为Windows应用程序设置注册表项的疑难解答问题的提示,指南或说明. ...

  5. QSettings 读写注册表、配置文件

    简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见" ...

  6. 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-3 读写注册表

    读写注册表和读写文件一样,里面涉及的输入类型比较复杂,需要参考官方范例 sSubKey是指注册表的路径 sValName是指注册表要写入的名值对的名称 eValType是一个枚举类型(而且不是什么常规 ...

  7. C++读写注册表的问题

    UNICODE态下,在读取注册表的时候有时会只获得一个字符,是因为RegQueryValueEx的参数虽然是LPBYTE(unsigned char *),但是读出来的数据却是按照WIDECHAR形式 ...

  8. C# 将应用程序通过注册表设置开机启动项

    转载自C# 将当前应用程序写入到注册表开机启动项中 //设置开机启动 private void AutoRunAfterStart(){//获取当前应用程序的路径string localPath = ...

  9. Windows c++ 读写注册表

    背景 在 Windows 上面,我们常用注册表作为一个 cache 来保存一些数据,这样当程序下一次启动的时候,读取注册表,就能获取到上一次缓存的结果 函数介绍 创建指定的注册表项 具体函数 WINA ...

最新文章

  1. leetcode-452 用最少数量的箭引爆气球
  2. 百度黄埔学院计划第四期来了!
  3. Windows程序设计_13_伤不起的书
  4. UML基础教程(内部使用教程) 非常不错的ppt!!强烈推荐
  5. 由laravel 5.5无法获取url中的参数引发的apache的.htaccess文件问题
  6. Windows彻底卸载删除MySQL
  7. 信息安全系统设计基础第七周学习总结
  8. ASP.NET中Request.IsAuthenticated和Request.User.Identity.IsAuthenticated的区别
  9. Object Detection: Face Detection using Haar Cascades
  10. php常见预定义常量,php跨平台小结 常用预定义常量
  11. Linux 搭建NFS文件服务器实现文件共享
  12. SaltStack 修复 Stack minion中的提权漏洞 (CVE-2020-28243)
  13. 第二季-专题9--代码搬移不可少
  14. 面试官:如何进行 JVM 调优(附真实案例)
  15. python dbf转excel_如何在python中将dbf转换为csv?
  16. 华为性格测试通关指南
  17. Python 自动化教程(3) : 自动生成PPT文件 Part 1 (干货)
  18. python 高中信息技术 会考_2019信息技术会考真题
  19. 如何为word增加页码,且第一页不显示页码?
  20. CentOS升级openssl修复部分ssl漏洞

热门文章

  1. es6添加删除class_es6-class的基本用法
  2. win10如何打开摄像头_win10系统如何打开自带游戏?
  3. fpga初始化错误_FPGA的ROM初始化问题讨论
  4. 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
  5. 火绒规则 禁止所有软件的安装_十大机械设计软件对比,附所有软件安装资料...
  6. 计算机 学校教一半 自学一半,一半初中生无缘普高,上职业学校怎么样?
  7. egg 编码规范_从 Egg.js 到 NestJS,爱码客后端选型之路
  8. java kinect 人体识别_基于三个kinect的人体建模
  9. centos6.8安装mysql6.5_centos6.8 yum安装mysql 5.6 (完整)
  10. mysql 编码种类_MySQL 编码