VS2010开发应用程序读写注册表
注册表是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开发应用程序读写注册表相关推荐
- java读写注册表的两种方式,Preferences与jRegistry
打开注册表方式:电脑上的windows键加r键打开运行程序->输入指令regedit->随即系统便会提示你是否要运行,选择"是"就行了 由于java程序是"w ...
- C#读写注册表及 WOW6432Node 问题
C# 读写注册表技术很成熟,示例代码如下: // Create & Write string regpath = @"Software\MySoft\Soft1"; Reg ...
- qsettings删除注册表_【Qt】QSettings读写注册表、配置文件【转】
简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见" ...
- linux应用程序注册表,如何打开 Linux 中 Windows 程序的注册表编辑器
在我们借助CrossOver这款兼容软件在Linux操作系统中运行Windows应用程序的过程中,有的时候我们可能会遇到有关要求,为Windows应用程序设置注册表项的疑难解答问题的提示,指南或说明. ...
- QSettings 读写注册表、配置文件
简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见" ...
- 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-3 读写注册表
读写注册表和读写文件一样,里面涉及的输入类型比较复杂,需要参考官方范例 sSubKey是指注册表的路径 sValName是指注册表要写入的名值对的名称 eValType是一个枚举类型(而且不是什么常规 ...
- C++读写注册表的问题
UNICODE态下,在读取注册表的时候有时会只获得一个字符,是因为RegQueryValueEx的参数虽然是LPBYTE(unsigned char *),但是读出来的数据却是按照WIDECHAR形式 ...
- C# 将应用程序通过注册表设置开机启动项
转载自C# 将当前应用程序写入到注册表开机启动项中 //设置开机启动 private void AutoRunAfterStart(){//获取当前应用程序的路径string localPath = ...
- Windows c++ 读写注册表
背景 在 Windows 上面,我们常用注册表作为一个 cache 来保存一些数据,这样当程序下一次启动的时候,读取注册表,就能获取到上一次缓存的结果 函数介绍 创建指定的注册表项 具体函数 WINA ...
最新文章
- leetcode-452 用最少数量的箭引爆气球
- 百度黄埔学院计划第四期来了!
- Windows程序设计_13_伤不起的书
- UML基础教程(内部使用教程) 非常不错的ppt!!强烈推荐
- 由laravel 5.5无法获取url中的参数引发的apache的.htaccess文件问题
- Windows彻底卸载删除MySQL
- 信息安全系统设计基础第七周学习总结
- ASP.NET中Request.IsAuthenticated和Request.User.Identity.IsAuthenticated的区别
- Object Detection: Face Detection using Haar Cascades
- php常见预定义常量,php跨平台小结 常用预定义常量
- Linux 搭建NFS文件服务器实现文件共享
- SaltStack 修复 Stack minion中的提权漏洞 (CVE-2020-28243)
- 第二季-专题9--代码搬移不可少
- 面试官:如何进行 JVM 调优(附真实案例)
- python dbf转excel_如何在python中将dbf转换为csv?
- 华为性格测试通关指南
- Python 自动化教程(3) : 自动生成PPT文件 Part 1 (干货)
- python 高中信息技术 会考_2019信息技术会考真题
- 如何为word增加页码,且第一页不显示页码?
- CentOS升级openssl修复部分ssl漏洞
热门文章
- es6添加删除class_es6-class的基本用法
- win10如何打开摄像头_win10系统如何打开自带游戏?
- fpga初始化错误_FPGA的ROM初始化问题讨论
- 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
- 火绒规则 禁止所有软件的安装_十大机械设计软件对比,附所有软件安装资料...
- 计算机 学校教一半 自学一半,一半初中生无缘普高,上职业学校怎么样?
- egg 编码规范_从 Egg.js 到 NestJS,爱码客后端选型之路
- java kinect 人体识别_基于三个kinect的人体建模
- centos6.8安装mysql6.5_centos6.8 yum安装mysql 5.6 (完整)
- mysql 编码种类_MySQL 编码