c语言注册表函数大全详解,C++注册表操作大全(每贴更新10个)

11.写入DWORD值

LPCTSTR StrChildKey(%%1);DWORD %%2;

if (ERROR_SUCCESS==::RegSetValueEx( m_hKey,(LPCTSTR)StrChildKey,0,REG_DWORD,(BYTE *)&%%2,sizeof(Value)) )

{

%%3

}

12.设置DWORD值

BOOL CRegEdit::SetDwordValue(HKEY Root, LPCTSTR StrKey, LPCTSTR StrChildKey, DWORD Value)

m_hKey=m_RootKey=Root;

if (CreateKey(StrKey))

{

if (WriteDword(StrChildKey,Value))

{

%%2

}

13.删除值

if (ERROR_SUCCESS==RegDeleteValue(m_hKey,%%1))

{

%%2

}

14.关闭键

if (m_hKey!=NULL)

::RegCloseKey(m_hKey);

15.列出一个键下所有的子键

LPTSTR subKey;

DWORD numSubKey=0;

DWORD i;

DWORD sizeSubKey;

TCHARsubKey[MAX_KEY_LENGTH];

RegQueryInfoKey(m_hKey,NULL,NULL,NULL,&numSubKey,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

if (numSubKey)

{

for (i=0; i

{

subKey[0]=’\0′;

sizeSubKey=MAX_KEY_LENGTH;

RegEnumKeyEx(m_hKey,i,subKey,&sizeSubKey,NULL,NULL,NULL,NULL);

CString %%1=CString(subKey);

}

}

16.列出一个键下所有的值

//#define MAX_KEY_LENGTH 255

//#define MAX_VALUE_NAME 16383

TCHAR achKey[MAX_KEY_LENGTH];

DWORD cbName;

TCHAR achClass[MAX_PATH] = TEXT(“”);

DWORD cchClassName = MAX_PATH;

DWORD cSubKeys=0;

DWORD cbMaxSubKey;

DWORD cchMaxClass;

DWORD cValues;

DWORD cchMaxValue;

DWORD cbMaxValueData;

DWORD cbSecurityDescriptor;

FILETIME ftLastWriteTime;

DWORD i, retCode;

TCHAR  achValue[MAX_VALUE_NAME];

DWORD cchValue = MAX_VALUE_NAME;

retCode = RegQueryInfoKey

(m_hKey,achClass,&cchClassName,NULL,&cSubKeys,&cbMaxSubKey,&cchMaxClass,&cValues,&cchMaxValue,&cbMaxValueData,&cbSecurityDesc

riptor,&ftLastWriteTime);

if (cValues)

{

for (i=0, retCode=ERROR_SUCCESS; i

{

cchValue = MAX_VALUE_NAME;

achValue[0] = ‘\0′;

retCode = RegEnumValue(m_hKey, i,achValue,&cchValue,NULL,NULL,NULL,NULL);

if (retCode == ERROR_SUCCESS ){

CString %%1=CString(achValue);

%%2

}

}

}

17.列出一个键下所有的子键和值

//#define MAX_KEY_LENGTH 255

//#define MAX_VALUE_NAME 16383

TCHAR achKey[MAX_KEY_LENGTH];

DWORD cbName;

TCHAR achClass[MAX_PATH] = TEXT(“”);

DWORD cchClassName = MAX_PATH;

DWORD cSubKeys=0;

DWORD cbMaxSubKey;

DWORD cchMaxClass;

DWORD cValues;

DWORD cchMaxValue;

DWORD cbMaxValueData;

DWORD cbSecurityDescriptor;

FILETIME ftLastWriteTime;

DWORD i, retCode;

TCHAR  achValue[MAX_VALUE_NAME];

DWORD cchValue = MAX_VALUE_NAME;

retCode = RegQueryInfoKey

(m_hKey,achClass,&cchClassName,NULL,&cSubKeys,&cbMaxSubKey,&cchMaxClass,&cValues,&cchMaxValue,&cbMaxValueData,&cbSecurityDesc

riptor,&ftLastWriteTime);

if (cSubKeys)

{

for (i=0; i

{

cbName = MAX_KEY_LENGTH;

retCode = RegEnumKeyEx(m_hKey,i,achKey,&cbName,NULL,NULL,NULL,&ftLastWriteTime);

if (retCode == ERROR_SUCCESS) {

CString %%1=CString(achKey);

%%2

}

}

}

if (cValues)

{

for (i=0, retCode=ERROR_SUCCESS; i

{

cchValue = MAX_VALUE_NAME;

achValue[0] = ‘\0′;

retCode = RegEnumValue(m_hKey, i,achValue,&cchValue,NULL,NULL,NULL,NULL);

if (retCode == ERROR_SUCCESS ){

CString %%3=CString(achValue);

%%4

}

}

}

18.枚举所有的子键和值

//#include

using std::vector;

struct RegStore{

HKEY hKey;

TCHAR rootKey[MAX_KEY_LENGTH];

CString path;

};

vector cache;

CString m_content,%%1;

bool findFlag;

DWORD i,sizeSubKey,numSubKey=0;

struct RegStore rs;

TCHAR subKey[MAX_KEY_LENGTH];

rs.hKey=hKey;

strcpy(rs.rootKey,rootKey);

rs.path=path;

cache.push_back(rs);

for(int iCt=0;iCt

{

rs=cache.at(iCt);

RegOpenKeyEx(rs.hKey,rs.rootKey,0,KEY_READ,&hKey);

if (RegQueryValueEx(hKey,m_content,NULL,NULL,NULL,NULL)==ERROR_SUCCESS)

{

findFlag=1;

%%1=rs.path;

%%2

}

else

{

RegQueryInfoKey(hKey,NULL,NULL,NULL,&numSubKey,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

if (numSubKey)

{

for (i=0; i

{

subKey[0]=’\0′;

sizeSubKey=MAX_KEY_LENGTH;

RegEnumKeyEx(hKey,i,subKey,&sizeSubKey,NULL,NULL,NULL,NULL);

rs.hKey=hKey;

strcpy(rs.rootKey,rootKey);

rs.path=path+subKey+”\\”;

cache.push_back(rs);

}

}

}

RegCloseKey(hKey);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值