如何用cregkey類來操作登錄檔
用cregkey類來操作登錄檔是非常方便的。cregkey類並不是乙個mfc類,而是乙個atl類,所以在使用的時候不要忘記在stdafx.h標頭檔案中加入#include 。
1.開啟需要查詢登錄檔鍵:
原型是:long open( hkey hkeyparent, lpctstr lpszkeyname, regsam samdesired = key_all_access );
只有開啟了乙個登錄檔鍵才能對其值進行操作。
hkeyparent:開啟的鍵的控制代碼。
lpszkeyname:鍵所在的登錄檔的路徑。
samdesired:登錄檔訪問的安全性。
例子:cregkey rk;
lpctstr lp="software//compupacific//newen//addins//addbutton";
if(rk.open(hkey_current_user,lp)== error_success)
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)
else
}else
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)
else
//rk.setvalue(lkeyname,"hh");
}else
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//*******";
lresult = reg.open(hkey_current_user,lpszkey);
//check if opened successfully
if(error_success != lresult)
//set the value
lresult = reg.setvalue(m_szfilepath,"backbitmap");
if(error_success != lresult)
//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//*******";
lresult = reg.open(hkey_current_user,lpszkey);
//check if opened successfully
if(error_success != lresult)
//delete the value "backbitmap" from *******
lresult = reg.deletevalue("backbitmap");
//check if deleted successfully
if(error_success != lresult)
//done, return success
reg.close();
這樣就去掉了你給ie工具欄設定的背景,也就是刪掉了ie工具欄的backbitmap鍵值。
一般來說最主要的操作就是這些了,是不是很簡單啊。
用VC 來設計ActiveX控制項
用vc 來設計activex控制項 派生類基類實現功能 colecontrolmodule 控制項例項的初始化和撤消 ctestctrl colecontrol 控制項視窗的建立 更新及訊息處理 ctestproppage colepropertypage 控制項屬性頁的設定及與實際屬性值的交換 編...
用VC 來設計ActiveX控制項
用vc 來設計activex控制項 周勇生 2001年07月05日 14 03 我們假定專案名為test。建立工作完成後,開啟workspace檔案test.dsw,可以看到系統生成的test控制項框架,主要的類及實現功能描述見下表 編譯此專案,生成test.ocx。在當前的developer st...
關於用vc來操作usb裝置
一直有點疑惑的地方是guid的值取向,之前一直通過裝置管理器去查詢對應的裝置所對應的裝置id,裝置guid,但是發現開啟usb裝置的時候返回false,具體函式 setupdienumdeviceinte ces 該函式一直返回false,後來網上查了下說是guid與裝置的guid對應不上,後面有個...