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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值