注冊表操作,使用MFC提供的CRegKey類,封裝了相應的操作,但是需要在對話框源文件
中引用atlbase.h頭文件
主要方法
注冊表是個樹結構,由根鍵,子鍵和項組成,其中項是子鍵下的數據,包括項的名稱
,數據類型和數據
1:Create:用於創建所標志的鍵,聲明如下
LONG Create(
HKEY hKeyParent, //表示打開的父鍵句柄;
LPCTSTR lpszKeyName,表示鍵的名稱;
LPTSTR lpszClass=REG_NONE,表示鍵的類型
DWORD dwOptions=REG_OPTION_NON_VOLATILE,表示鍵的打開方式
REGSAM samDesired=KEY_ALL_ACCESS,表示訪問權限
LPSECURITY_ATTRIBUTES lpSecAttr=NULL,表示句柄安全屬性
LPDWORD lpdwDispotion=NULL//表示返回函數執行的動作)
2:Open:用於打開注冊表的鍵值
LONG Open(HKEY hKeyParent,//父鍵句柄
LPCTSTR lpszKeyName,打開的鍵名稱
REGSAM samDesired=KEY_ALL_ACCESS//訪問權限)
3:SetValue:用於設置指定鍵的項信息,有三種方法
LONG SetValue(DWORD dwValue,LPCTSTR lpszValueName)
LONG SetValue(LPCTSTR lpszValue,LPCTSTR lpszValueName)
其中 dwValue,//表示設置的整數值
lpszValueName//表示設置的項的名稱
lpszValue//表示設置的字符串數據
LONG SetValue(HKEY hKeyParent,LPCTSTR lpszKeyName,LPCTSTR
lpszValue,LPCTSTR lpszValueName=NULL)
其中hKeyParent表示父鍵句柄
lpszKeyName表示鍵的名稱;
lpszValue表示設置的項的數據
lpszValueName表示項名稱
4:QueryValue:獲取指定鍵的數據
LONG QueryValue(LPCTSTR lpszValueName,DWORD *pdwType,void *pData,ULONG
*pnBytes);
ATL_DEPRECATEDLONG QueryValue(DWORD &dwValue,LPCTSTR lpszValueName);
ATL_DEPRECATEDLONG QueryValue(LPSTR szValue,LPCTSTR lpszValueName,DWORD
*pdwCount);
lpszValueName表示查詢的項的名稱
pdwType整型指針,用於返回項的數據類型
pData表示數據緩沖區,用於存儲函數返回的數據
pnBytes表示數據緩沖區pData的大小
dwValue用於存儲函數返回的整型數據
szValue表示緩沖區,
pdwCount 表示字符串數據的大小
5:Close關閉
void CRegDlg::OnRead()
{
// UpdateData(false);UpdateData(true);
UpdateData(true);
CRegKey reg;
reg.Open(HKEY_CURRENT_USER,m_key);
DWORD size=1000;
CString value;
reg.QueryValue(value.GetBuffer(0),m_value1,&size);
MessageBox(value,"提示");
}
void CRegDlg::OnWrite()
{
//UpdateData(false);UpdateData(true);
UpdateData(true);
CRegKey reg;
reg.Create(HKEY_CURRENT_USER,m_key);
reg.SetValue(m_value1,m_value2);
reg.Close();
}