c++ 注册表类
来源:互联网 发布:网络主管招聘 青岛沃林 编辑:程序博客网 时间:2024/06/05 03:55
C/C++ code复制代码
#if !defined(AFX_REGISTRY_H__E0610A5D_7166_4D02_9D7E_11AF7CF8E229__INCLUDED_)#define AFX_REGISTRY_H__E0610A5D_7166_4D02_9D7E_11AF7CF8E229__INCLUDED_//#include <winreg.h>/////////////////////////////////////////////////////////////////////////////// CRegistry windowclass CRegistry : public CObject{// Constructionpublic: CRegistry(HKEY hKey=HKEY_LOCAL_MACHINE);public: BOOL SaveKey(LPCTSTR lpFileName); BOOL RestoreKey(LPCTSTR lpFileName); BOOL Read(LPCTSTR lpValueName, CString* lpVal); BOOL Read(LPCTSTR lpValueName, DWORD* pdwVal); BOOL Read(LPCTSTR lpValueName, int* pnVal); BOOL Write(LPCTSTR lpSubKey, LPCTSTR lpVal); BOOL Write(LPCTSTR lpSubKey, DWORD dwVal); BOOL Write(LPCTSTR lpSubKey, int nVal); BOOL DeleteKey(HKEY hKey, LPCTSTR lpSubKey); BOOL DeleteValue(LPCTSTR lpValueName); void Close(); BOOL Open(LPCTSTR lpSubKey); BOOL CreateKey(LPCTSTR lpSubKey); virtual ~CRegistry();protected: HKEY m_hKey; };/////////////////////////////////////////////////////////////////////////////#endif // !defined(AFX_REGISTRY_H__E0610A5D_7166_4D02_9D7E_11AF7CF8E229__INCLUDED_)
Registry.cpp
- C/C++ code复制代码
// Registry.cpp : implementation file//#include "stdafx.h"#include "Registry.h"/////////////////////////////////////////////////////////////////////////////// CRegistryCRegistry::CRegistry(HKEY hKey){ m_hKey=hKey;}CRegistry::~CRegistry(){ Close();}/////////////////////////////////////////////////////////////////////////////// CRegistry FunctionsBOOL CRegistry::CreateKey(LPCTSTR lpSubKey){ ASSERT(m_hKey); ASSERT(lpSubKey); HKEY hKey; DWORD dw; long lReturn=RegCreateKeyEx(m_hKey,lpSubKey,0L,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dw); if(lReturn==ERROR_SUCCESS) { m_hKey=hKey; return TRUE; } return FALSE; }BOOL CRegistry::Open(LPCTSTR lpSubKey){ ASSERT(m_hKey); ASSERT(lpSubKey); HKEY hKey; long lReturn=RegOpenKeyEx(m_hKey,lpSubKey,0L,KEY_ALL_ACCESS,&hKey); if(lReturn==ERROR_SUCCESS) { m_hKey=hKey; return TRUE; } return FALSE; }void CRegistry::Close(){ if(m_hKey) { RegCloseKey(m_hKey); m_hKey=NULL; } }BOOL CRegistry::DeleteValue(LPCTSTR lpValueName){ ASSERT(m_hKey); ASSERT(lpValueName); long lReturn=RegDeleteValue(m_hKey,lpValueName); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE; }BOOL CRegistry::DeleteKey(HKEY hKey, LPCTSTR lpSubKey){ ASSERT(hKey); ASSERT(lpSubKey); long lReturn=RegDeleteValue(hKey,lpSubKey); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE; }BOOL CRegistry::Write(LPCTSTR lpSubKey, int nVal){ ASSERT(m_hKey); ASSERT(lpSubKey); DWORD dwValue; dwValue=(DWORD)nVal; long lReturn=RegSetValueEx(m_hKey,lpSubKey,0L,REG_DWORD,(const BYTE *) &dwValue,sizeof(DWORD)); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE; }BOOL CRegistry::Write(LPCTSTR lpSubKey, DWORD dwVal){ ASSERT(m_hKey); ASSERT(lpSubKey); long lReturn=RegSetValueEx(m_hKey,lpSubKey,0L,REG_DWORD,(const BYTE *) &dwVal,sizeof(DWORD)); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE; }BOOL CRegistry::Write(LPCTSTR lpValueName, LPCTSTR lpValue){ ASSERT(m_hKey); ASSERT(lpValueName); ASSERT(lpValue); long lReturn=RegSetValueEx(m_hKey,lpValueName,0L,REG_SZ,(const BYTE *) lpValue,strlen(lpValue)+1); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE; }BOOL CRegistry::Read(LPCTSTR lpValueName, int* pnVal){ ASSERT(m_hKey); ASSERT(lpValueName); ASSERT(pnVal); DWORD dwType; DWORD dwSize=sizeof(DWORD); DWORD dwDest; long lReturn=RegQueryValueEx(m_hKey,lpValueName,NULL,&dwType,(BYTE *)&dwDest,&dwSize); if(lReturn==ERROR_SUCCESS) { *pnVal=(int)dwDest; return TRUE; } return FALSE; }BOOL CRegistry::Read(LPCTSTR lpValueName, DWORD* pdwVal){ ASSERT(m_hKey); ASSERT(lpValueName); ASSERT(pdwVal); DWORD dwType; DWORD dwSize=sizeof(DWORD); DWORD dwDest; long lReturn=RegQueryValueEx(m_hKey,lpValueName,NULL,&dwType,(BYTE *)&dwDest,&dwSize); if(lReturn==ERROR_SUCCESS) { *pdwVal=dwDest; return TRUE; } return FALSE; }BOOL CRegistry::RestoreKey(LPCTSTR lpFileName){ ASSERT(m_hKey); ASSERT(lpFileName); long lReturn=RegRestoreKey(m_hKey,lpFileName,REG_WHOLE_HIVE_VOLATILE); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE;}BOOL CRegistry::SaveKey(LPCTSTR lpFileName){ ASSERT(m_hKey); ASSERT(lpFileName); long lReturn=RegSaveKey(m_hKey,lpFileName,NULL); if(lReturn==ERROR_SUCCESS) return TRUE; return FALSE;}BOOL CRegistry::Read(LPCTSTR lpValueName, CString* lpVal){ ASSERT(m_hKey); ASSERT(lpValueName); ASSERT(lpVal); DWORD dwType; DWORD dwSize=200; char szString[2550]; long lReturn=RegQueryValueEx(m_hKey,lpValueName,NULL,&dwType,(BYTE *)szString,&dwSize); if(lReturn==ERROR_SUCCESS) { *lpVal=szString; return TRUE; } return FALSE; }
- C#.NET注册表操作类
- (C++)读写注册表的类
- winform C#.NET注册表操作类
- C# 我的注册表操作类
- C++Builder注册表操作
- 注册表的操作(C#)
- C语言修改注册表
- 【C#】读取注册表
- C语言修改注册表
- C#-注册表操作
- c#--注册表相关技术
- 注册表类
- 利用C++Builder读写注册表
- C语言注册表操作实例
- 用C#读取注册表信息
- 用C#读取注册表信息
- C语言如何读写注册表
- C\C++修改windows注册表
- linux下网络工具之tcpdump
- C#实现百度中的搜索框的下选效果!
- flex_assql连接mysql
- 计算机类国外经典书籍
- linux内核调试指南
- c++ 注册表类
- C#winform中怎么将程序最小化到系统托盘
- 黑莓BES系统架构介绍
- 参考:ASP错误代码说明
- 终于开通自己的博客
- 1-9随机赋值给一个9位数组
- 参考:HTML中的特殊字符转义
- Alert can't display any text
- ListView(2)