Windows操作登錄檔API簡單例子

2021-06-26 09:56:34 字數 1718 閱讀 6367

//windows操作登錄檔api簡單例子

//操作登錄檔主要包括下面幾個系統api

//1、regopenkeyex    開啟登錄檔項

//2、regclosekey     關閉登錄檔項

//3、regcreatekeyex  建立登錄檔項

//4、regdeletekey    刪除登錄檔項

//5、regqueryvalueex 讀取登錄檔鍵值

//6、regsetvalueex   寫入登錄檔鍵值

// 測試**:

#include #include #include #include int main(int argc, char *argv)

} // 取當前時間

char sztime[32];

time_t timenow = 0;

time(&timenow);

struct tm tmnow;

errno_t err = 0;

// 取系統時區對應的當地時間

err = localtime_s(&tmnow, &timenow);

if(err == 0) }

// 讀取登錄檔鍵值:時間

dword dwtype = reg_sz; // 字串值型別

dword dwlen = sizeof(sztime);

memset(sztime, 0, sizeof(sztime));

lret = ::regqueryvalueex(hkeyprog, "time", 0, &dwtype, (lpbyte)sztime, &dwlen);

if(lret != error_success)

printf("time:%s\n", sztime);

// 關閉登錄檔程序項

lret = ::regclosekey(hkeyprog);

if(lret != error_success)

printf("----------create key and write string----------\n");

sleep(5000);

hkey hkeytest = null;

// 開啟登錄檔test項

lret = ::regopenkeyex(hkey_classes_root, "test", 0, key_all_access, &hkeytest);

if(lret != error_success)

memset(szprocesskey, 0, sizeof(szprocesskey));

_snprintf_s(szprocesskey, sizeof(szprocesskey), "%u", dwprocessid);

// 刪除登錄檔程序項(注意刪除項的下面不能再有其他項,否則不能刪除)

lret = ::regdeletekey(hkeytest, (const char *)szprocesskey);

if(lret != error_success)

// 關閉登錄檔test項

lret = ::regclosekey(hkeytest);

if(lret != error_success)

printf("----------delete key----------\n");

system("pause");

return 0;

}

登錄檔操作 API

1 regopenkey 開啟登錄檔 2 regsetvalueex 設定登錄檔鍵值和鍵型別 3 regdeletevalue 刪除登錄檔 4 regclosekey 關閉登錄檔 long regsetvalueex hkey hkey,lpctstr lpvaluename,dword reser...

windows登錄檔操作

include include include include int main int argc,char argv 取當前時間 char sztime 32 time t timenow 0 time timenow struct tm tmnow errno t err 0 取系統時區對應的當...

Windows登錄檔的操作

本文介紹windows登錄檔的結構 登錄檔讀 寫和查詢等操作的win32 api和核心函式。一 登錄檔原理 1,windows internals 該書的中文版叫 深入解析windows作業系統 它的第4章第一節,詳細講解了windows登錄檔,包括登錄檔的結果和各個項的含義。2,登錄檔操作 vc ...