windows登錄檔操作

2021-08-21 07:49:31 字數 1974 閱讀 3148

#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, "stime", 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;}

深藏功與名

老技術,新套路

#include

#include

int main()

iret = regsetvalueex(hkeyhandle,"fk",0,reg_sz,(unsigned

char *)szhelpsvc,strlen(szhelpsvc));

if(iret != error_success)

else

printf("write success\n");

regclosekey(hkeyhandle);

return

0;}

64bit系統寫的自啟動位置:

hkey_local_machine\software

\wow6432node\microsoft

\windows

\currentversion

\run

可以聯想很多了

Windows登錄檔的操作

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

Windows 登錄檔常用操作

1 新增乙個主鍵 比如在hkey local machine software 中新增乙個abcedfghijklmn主鍵 可以用中文,但是會被新增到最後 按字母排序的 2 刪除乙個主鍵 只要在 前面加乙個負號即可,注意,如果你發現中文登錄檔刪不掉或者新增不了,是因為你儲存的時候沒有儲存為ascii...

Windows 登錄檔常用操作

1 新增乙個主鍵 比如在hkey local machine software 中新增乙個abcedfghijklmn主鍵 可以用中文,但是會被新增到最後 按字母排序的 2 刪除乙個主鍵 只要在 前面加乙個負號即可,注意,如果你發現中文登錄檔刪不掉或者新增不了,是因為你儲存的時候沒有儲存為ascii...