登錄檔內部結構:
key->subkey->value->名稱,型別,資料
函式:
regcreatekey()
regcreatekeyex()
regopenkey()
regopenkeyex()
regsetvalue()
regsetvalueex()
regqueryvalue()
regqueryvalueex()
regdeletekey()
regdeletekeyex()
regclosekey()
1.寫登錄檔
有些系統需要管理員才能對登錄檔進行修改,所以想要程式執行成功必須要以管理員身份執行,否則將寫入失敗
2.讀登錄檔hkey hkey = nullptr;
//建立成功,將得到hkey,乙個登錄檔控制代碼,用於下面操作登錄檔
if (error_success != regcreatekey(hkey_local_machine, text("software\\test"), &hkey))
//寫入登錄檔 //型別 //名稱 //字元個數
//只能寫入乙個value
if (error_success != regsetvalue(hkey,nullptr,reg_sz,text("test"),4))
if (hkey ==nullptr)
dword dwdata = 100;
long lret = 0;
//這個函式可以寫入更多的value //名稱 //型別 //資料
if (error_success != (lret = regsetvalueex(hkey, text("other"), 0, reg_dword, (const byte*)&dwdata, 4)))
afxmessagebox(text("寫入登錄檔成功!"));
regclosekey(hkey);
regqueryvalueex這個函式根據不同的reg型別有不同的用法,需要謹慎小心.long lvalue = 0;
//先讀取資料的長度
regqueryvalue(hkey_local_machine, text("software\\test"), nullptr, &lvalue);
tchar *pbuf = new tchar[lvalue];
regqueryvalue(hkey_local_machine, text("software\\test"), pbuf, &lvalue);
afxmessagebox(pbuf);
hkey hkey = nullptr;
dword dwtpye = 0;
dword dwvalue = sizeof(dword);//這個大小一定要先求出來,否則會出錯(234)
lpdword dwdata = new dword;//一定要分配記憶體,否則也會出錯
long lret = 0;
//開啟登錄檔
regopenkeyex(hkey_local_machine, text("software\\test"),0, key_all_access,&hkey);
//regopenkey(hkey_local_machine, text("software\\test"), &hkey);
//讀登錄檔 //valuename //返回value型別 //資料快取區 //快取區大小
if (error_success != (lret = regqueryvalueex(hkey, text("other"), 0, &dwtpye, (lpbyte)dwdata, &dwvalue)))
afxmessagebox(text("讀取登錄檔成功!"));
cstring s;
s.format(text("data = %d"), *dwdata);
afxmessagebox(s);
delete dwdata;
讀寫登錄檔
ie 是現在windows 平台下用的最多的瀏覽器,那麼如何用程式來修改 ie,打造有自己的特色的 ie呢?我在這裡向介紹怎麼 c 用通過登錄檔來修改ie。首先我們來熟悉一下 c 中修改登錄檔的方法與函式。在 vc 中提供了 registry 類 registrykey 類來實現對登錄檔的操作。其中...
讀寫登錄檔
寫登錄檔 registrykey regwrite 往hkey current user主鍵裡的software子鍵下寫乙個名為 test 的子鍵 如果test子鍵已經存在系統會自動覆蓋它 regwrite registry.currentuser.createsubkey software tes...
MFC程式可以這樣讀寫登錄檔
mfc的 setregistrykey setregistrykey 這個函式功能是設定mfc程式的登錄檔訪問鍵,並把讀寫 ini 檔案的成員函式對映到讀寫登錄檔。只要呼叫一下 setregistrykey 並指定登錄檔鍵值,那麼下面6個成員函式,就被對映到進行登錄檔讀取了 writeprofile...