用CRegKey类来操作注册表是非常方便的。CRegKey类并不是一个MFC类,而
是一个ATL类,所以在使用的时候不要忘记在StdAfx.h头文件中加入#include
例子:
CRegKey
rk;
LPCTSTR
lp="Software\\Compupacific\\NewEn\\AddIns\\AddButton";
if(rk.Open(HKEY_CURRENT_USER,lp)==
ERROR_SUCCESS)
{
AfxMessageBox(“Successful!”0);
}
2.
获取注册表中某一键的键值:
LONG QueryValue( DWORD& dwValue, LPCTSTR
lpszValueName );
LONG QueryValue( LPTSTR szValue, LPCTSTR
lpszValueName, DWORD* pdwCount );
有两个函数,第一个是查询整型值,第二个是查询字符串类型的值。下
面分别对它们进行举例:
//取整型值
CRegKey rk;
DWORD dValue ;
LPCTSTR
lp="Software\\Compupacific\\NewEn\\AddIns\\AddButton";
if(rk.Open(HKEY_CURRENT_USER,lp)==
ERROR_SUCCESS)
{
if(rk.QueryValue(
dValue,"LoadBehavior")==ERROR_SUCCESS)
{
CString temp;
temp.Format("%d",dValue);
SetDlgItemText(IDC_EDIT1,temp);
}
else
{
AfxMessageBox("Query
Error");
}
}
else
{
AfxMessageBox("Open
error!");
}
rk.Close();
//取字符串类型的值
CRegKey
rk;
HKEY m_hKey;
DWORD pCount=1024;
CString
KeyValue;
char szValue[1024];
LPCTSTR
lp="Software\\Compupacific\\NewEn\\AddIns\\AddButton";
if(rk.Open(HKEY_CURRENT_USER,lp)==
ERROR_SUCCESS)
{
LPCTSTR lKeyName="Description";
if(rk.QueryValue(szValue,lKeyName,&
pCount)== ERROR_SUCCESS)
{
KeyValue=szValue;
SetDlgItemText(IDC_EDIT1,KeyValue);
}
else
{
SetDlgItemText(IDC_EDIT1,"Query
error");
}
//rk.SetValue(lKeyName,"HH");
}
else
{
SetDlgItemText(IDC_EDIT1,"Open
error");
}
rk.Close();
3.加入一个键值:
LONG
SetValue( DWORD dwValue, LPCTSTR lpszValueName );
LONG SetValue(
LPCTSTR lpszValue, LPCTSTR lpszValueName = NULL );
LONG SetValue(
HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR
lpszValueName = NULL );
有三个重载函数,大同小异。我们针对第二个举例,举一反三:
LONG
lResult = 0;
CRegKey reg;
//open the required registry key
LPCTSTR
lpszKey = "Software\\Microsoft\\Internet Explorer\\Toolbar";
lResult
= reg.Open(HKEY_CURRENT_USER,lpszKey);
//check if opened
successfully
if(ERROR_SUCCESS != lResult)
{
return
FALSE;
}
//set the value
lResult =
reg.SetValue(m_szFilePath,"BackBitmap");
if(ERROR_SUCCESS !=
lResult)
{
return FALSE;
}
//done, close and
return success
reg.Close();
m_szFilepath是一张图片的位置,通过这个
函数,你的IE工具栏的背景就变成的你指定的图片了,很爽吧。
4. 删除一个键值:
LONG
DeleteValue( LPCTSTR lpszValue );
lpszValue:你要删除的键值的名字.
例
子:
LONG lResult = 0;
CRegKey reg;
//open the
required registry key
LPCTSTR lpszKey =
"Software\\Microsoft\\Internet Explorer\\Toolbar";
lResult =
reg.Open(HKEY_CURRENT_USER,lpszKey);
//check if opened
successfully
if(ERROR_SUCCESS != lResult)
{
return
FALSE;
}
//delete the value "BackBitmap" from toolbar
lResult
= reg.DeleteValue("BackBitmap");
//check if deleted
successfully
if(ERROR_SUCCESS != lResult)
{
return
FALSE; //perhaps value not found, if skin is not set
}
//done,
return success
reg.Close();
这样就去掉了你给IE工具栏设定的背景图片,
也就是删掉了IE工具栏的BackBitmap键值。
一般来说最主要的操作就是这些了,是不是很简单啊。
form:
阅读(955) | 评论(0) | 转发(1) |