📄 lregedit.cpp
字号:
// Lregedit.cpp: implementation of the Lregedit class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "qqlogin.h"
#include "Lregedit.h"
#include <string>
using namespace std;
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Lregedit::Lregedit()
{
m_hKey=NULL;
}
Lregedit::~Lregedit()
{
if(m_hKey!=NULL) RegCloseKey(m_hKey);
}
bool Lregedit::Open(HKEY hRootKey, const char* SubKeyName,bool IsCreate)
{
Close();
if(RegOpenKey(hRootKey,SubKeyName,&m_hKey)==ERROR_SUCCESS)
return true;
if(IsCreate)
{
if(RegCreateKey(hRootKey,SubKeyName,&m_hKey)==ERROR_SUCCESS)
return true;
}
return false;
}
void Lregedit::Close()
{
if(m_hKey!=NULL)
{
if(RegCloseKey(m_hKey)==ERROR_SUCCESS) m_hKey=NULL;
}
}
string Lregedit::ReadValue(HKEY hRootkey, const char* subKeyName,const char* valueName)
{
Close();
if(Open(hRootkey,subKeyName,false))
{
DWORD dwType;
DWORD BufSize=255;
if(RegQueryValueEx(m_hKey,valueName,0,&dwType,0,&BufSize)!=ERROR_SUCCESS)
{
Close(); return "";
}
unsigned char* DataBuf=new unsigned char[BufSize+1];
memset(DataBuf,0,BufSize+1);
if(RegQueryValueEx(m_hKey,valueName,0,&dwType,DataBuf,&BufSize)!=ERROR_SUCCESS)
{
Close(); return "";
}
string strRet=(char*)DataBuf;
delete[] DataBuf;
return strRet;
}
Close(); return "";
}
bool Lregedit::SetValue(HKEY hRootKey,const char* SubKeyName,const char* ValueName,const char* Data)
{
Close();
if(Open(hRootKey,SubKeyName,true))
{
if(RegSetValueEx(m_hKey,ValueName,0,REG_SZ,(LPBYTE)Data,strlen(Data)+1)==ERROR_SUCCESS)
{
Close(); return true;
}
Close(); return false;
}
Close(); return false;
}
bool Lregedit::DeleteValues(HKEY hRootKey,const char* SubKeyName)
{
Close();
if(!Open(hRootKey,SubKeyName,false)) return false;
unsigned long Subkeys;
unsigned long Values;
if(RegQueryInfoKey(m_hKey,0,0,0,&Subkeys,0,0,&Values,0,0,0,0)!=ERROR_SUCCESS)
return false;
char ValueNameBuf[255];
while(Values)
{
memset(ValueNameBuf,0,255);
DWORD Len=255;
RegEnumValue(m_hKey,0,ValueNameBuf,&Len,0,0,0,0);
Values--;
if(RegDeleteValue(m_hKey,ValueNameBuf)!=ERROR_SUCCESS)
{
Close();
return false;
}
}
Close();
return true;
}
bool Lregedit::DeleteValue(HKEY hRootKey,const char* SubKeyName,const char* ValueName)
{
Close();
if(!Open(hRootKey,SubKeyName,false)) return false;
if(RegDeleteValue(m_hKey,ValueName)!=ERROR_SUCCESS)
{
Close();
return false;
}
Close();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -