登錄檔操作常用API使用

2021-06-26 04:35:33 字數 3963 閱讀 6456

1、regcreatekeyex

通過regcreatekeyex函式可以在登錄檔中建立鍵,如果需要建立的鍵已經存在了,則開啟鍵。函式原型如下:

long regcreatekeyex(

hkey hkey,

lpctstr lpsubkey,

dword reserved,

lptstr lpclass,

dword dwoptions,

regsam samdesired,

lpsecurity_attributeslpsecurityattributes,

phkey phkresult,

lpdword lpdwdisposition

);各引數及返回值的含義如下:

?hkey為主鍵值,可以取下面的一些數值:

hkey_classes_root、hkey_current_config

hkey_current_user、hkey_local_machine

hkey_user、hkey_performance_data(winnt作業系統)

hkey_dyn_data(win9x作業系統)

?引數lpsubkey為乙個指向以零結尾的字串的指標,其中包含將要建立或開啟的子鍵的名稱。子鍵不可以用反斜線()開始。該引數可以為null。

?reserved保留,必須設定為0。

?引數lpclass乙個指向包含鍵型別的字串。如果該鍵已經存在,則忽略該引數。

?引數dwoptions為新建立的鍵設定一定的屬性。可以取下面的一些數值:

reg_option_non_volatile 新建立的鍵為乙個非短暫性的鍵(資料資訊儲存在檔案中,當系統重新啟動時,資料資訊恢復)

reg_option_volatile 新建立的鍵為乙個短暫性的鍵(資料資訊儲存在記憶體中)。windows95忽略該數值。

reg_option_backup_restore 僅在winnt中支援,可以提供優先順序支援。

?引數samdesired用來設定對鍵訪問的許可權,可以取下面的一些數值:

key_create_link 准許生成符號鍵

key_create_sub_key 准許生成子鍵

key_enumerate_sub_keys 准許生成列舉子鍵

key_execute 准許進行讀操作

key_notify 准許更換通告

key_query_value 准許查詢子鍵

key_all_access 提供完全訪問,是上面數值的組合

key_read 是下面數值的組合:

key_query_value、key_enumerate_sub_keys、key_notify

key_set_value 准許設定子鍵的數值

key_write 是下面數值的組合:

key_set_value、key_create_sub_key

?引數lpsecurityattributes為乙個指向security_attributes結構的指標,確定返回的控制代碼是否被子處理過程繼承。如果該引數為null,則控制代碼不可以被繼承。在winnt中,該引數可以為新建立的鍵增加安全的描述。

?引數phkresult為乙個指向新建立或開啟的鍵的控制代碼的指標。

?引數lpdwdispition指明鍵是被建立還是被開啟的,可以是下面的一些數值:

reg_create_new_key 鍵先前不存在,現在被建立。

reg_opened_existing_key 鍵先前已存在,現在被開啟。

2、regsetvalueex

regsetvalueex函式可以設定登錄檔中鍵的值,函式原型如下:

long regsetvalueex(

hkey hkey,

lpctstr lpvaluename,

dword reserved,

dword dwtype,

const byte *lpdata,

dword cbdata

);各個引數及返回值的含義如下:

?引數hkey的含義同regcreatekeyex函式中的hkey引數。

?引數lpvaluename為乙個指向包含值名的字串指標。

?reserved保留,通常必須設定為0。

?引數dwtype確定了設定的值的型別同regqueryvaluekeyex的lytype引數。

?引數lpdata為乙個指向包含資料的緩衝區的指標。

?引數cbdata以位元組為單位,指定資料的長度。

?返回值同regcreatekeyex函式的返回值。

3、regdeletevalue

4、regopenkeyex

regopenkeyex函式可以開啟乙個指定的鍵,函式原型如下:

long regopenkeyex(

hkey hkey,

lpctstr lpsubkey,

dword uloption,

regsam samdesired,

phkey phkresult

);各引數及返回值的含義如下:

?引數hkey的含義同regcreatekeyex函式中的hkey引數。

?引數lpsubkey為乙個指向以零結尾的字串的指標,其中包含子鍵的名稱,可以利用反斜線()分隔不同的子鍵名。如果字串為空,則根據hkey引數建立乙個新的控制代碼。在這種情況下,並不關閉先前開啟的控制代碼。

?uloption保留,通常必須設定為0。

?引數samdesired的含義同regcreatekeyex函式中的samdesired引數。

?引數phkresult為乙個指標,用來指向開啟的鍵的控制代碼。可以通過regclosekey函式關閉這個控制代碼。

?返回值同regcreatekeyex函式的返回值。

5、regenumvalue

6、regqueryvalueex

通過regqueryvalueex函式可以從乙個已經開啟的鍵中讀取資料,函式原型如下:

long regqueryvalueex(

hkey hkey,

lptstr lpvaluename,

lpdword lpreserved,

lpdword lptype,

lpbyte lpdata,

lpdword lpcbdata

);各個引數及返回值的含義如下:

?引數hkey為當前的乙個開啟的鍵的控制代碼,具體數值同regcreatekeyex函式的hkey引數。

?引數lpvaulename為乙個指向非空的包含查詢值的名稱的字串指標。

?lpreserved保留,必須為null。

?引數lptype為乙個指向資料型別的指標,資料型別為下列型別之一:

reg_binary 二進位制資料

reg_dword 32位整數

reg_dword_little_endian little-endian格式的資料,例如0x12345678以(0x78 0x56 0x34 0x12)方式儲存

reg_dword_big_endian big-endian格式的資料,例如0x12345678以(0x12 0x34 0x56 0x78)方式儲存

reg_expand_sz 乙個包含未擴充套件環境變數的字串

reg_link 乙個unicode型別的鏈結

reg_mulit_sz 以兩個零結尾的字串

reg_none 無型別數值

reg_resource_list 裝置驅動資源列表

reg_sz 乙個以零結尾的字串根據函式使用的字符集型別的不同而設定為unicode或ansi型別的字串

?引數lpdata為乙個指向儲存返回值的變數的指標。如果不需要返回值,該引數可以為null。

?引數lpcbdata為乙個指向儲存返回值長度的變數的指標。其中長度以位元組為單位。如果資料型別為reg_sz、reg_multi_sz或reg_expand_sz,那麼長度也包括結尾的零字元,只有在引數lpdata為null時,引數lpcbdata才可以為null。

?返回值同regcreatekeyex函式的返回值。

登錄檔操作 API

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

API 登錄檔程式設計

首先來認識一下鍵,項,值吧 左邊有五個根鍵 hkey classes root hkey current user hkey local machine hkey user hkey current config 根鍵展開後可以看到子健 像 software,microsoft,windows,cu...

Windows 登錄檔常用操作

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