⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regkey.cpp

📁 Windows设备驱动自动注册代码
💻 CPP
字号:
///////////////////////////////////////////////////////////////////////////////////////////

// 文件名:regkey.cpp

// 创建者:wangyun

// 创建时间:2000.6.21

// 内容描述:注册表类

///////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "RegKey.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CRegKey::CRegKey()
{
	m_hKey=NULL;
}

CRegKey::~CRegKey()
{
	RegClose();
}
void CRegKey::RegClose()
{
	if(m_hKey)
	{
		RegCloseKey (m_hKey);
		m_hKey = NULL;
	}

}

//打开
LONG CRegKey::RegOpen(HKEY hKeyRoot,LPCTSTR pszPath)
{
	DWORD dw;
	m_sPath = pszPath;

	return RegCreateKeyEx(hKeyRoot,pszPath,0L,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hKey,&dw);

}

//读注册表
LONG CRegKey::RegRead(LPCTSTR pszKey,BYTE *pData,DWORD &dwLength)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	
	DWORD dwType;
	return RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,pData,&dwLength);
	

}
//读注册表
LONG CRegKey::RegRead(LPCTSTR pszKey,CString &sVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	
	DWORD dwType;
	DWORD dwSize = 200;
	char string[200];
	
	LONG IReturn = RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE *)string,&dwSize);
	
	if(IReturn==ERROR_SUCCESS)
		
		sVal = string;
	return IReturn;
	

}
//读注册表
LONG CRegKey::RegRead(LPCTSTR pszKey,DWORD &dwVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	
	DWORD dwType;
	DWORD dwSize = sizeof (DWORD);
	DWORD dwDest;
	
	LONG LRet = RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE *)&dwDest,&dwSize);
	
	if(LRet==ERROR_SUCCESS)
		dwVal = dwDest;
	return LRet;
}
//写注册表
LONG CRegKey::RegWrite(LPCTSTR pszKey,const BYTE *pData,DWORD dwLength)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	ASSERT(AfxIsValidAddress (pData,dwLength,FALSE));

	ASSERT(pData&&dwLength>0);
	ASSERT(AfxIsValidAddress(pData,dwLength,FALSE));

	return RegSetValueEx(m_hKey,pszKey,0L,REG_BINARY,pData,dwLength);

}
//写注册表
LONG CRegKey::RegWrite(LPCTSTR pszKey,LPCTSTR pszVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	ASSERT(pszVal);

	ASSERT(AfxIsValidAddress(pszVal,strlen(pszVal),FALSE));

	return RegSetValueEx(m_hKey,pszKey,0L,REG_SZ,(CONST BYTE *)pszVal,strlen (pszVal)+1);

}
//写注册表
LONG CRegKey::RegWrite(LPCTSTR pszKey,DWORD dwVal)
{
	ASSERT(m_hKey);

	ASSERT(pszKey);
	
	return RegSetValueEx(m_hKey,pszKey,0L,REG_DWORD,(CONST BYTE *)&dwVal,sizeof(DWORD));

}

LONG CRegKey::RegDel(LPCTSTR lpSubKey)
{
	ASSERT(m_hKey);

	ASSERT(lpSubKey);
	//return RegDeleteKey(m_hKey,lpSubKey);
	return RegDeleteValue(m_hKey,lpSubKey);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -