注册表操纵(VC

时间:2022-03-18 05:05:43

注册表的数据类型主要有以下四种:
显示类型(在编纂器中)   数据类型    说明                   
REG_SZ           字符串     文本字符串
REG_MULTI_SZ         多字符串    含有多个文本值的字符串
REG_BINARY          二进制数    二进制值,以十六进制显示.
REG_DWORD           双字      一个32位的二进制值,显示为8位的十六进制值.

各主键的简单介绍

HKEY_LOCAL_MACHINE  是一个显示控制系统和软件的措置惩罚惩罚键.HKLM键生存着计算机的系统信息.它包孕网络和硬件上所有的软件设置.

HKEY_CLASSES_ROOT  是系统中控制所有数据文件的项.

HKEY_USERS  将缺省用户和目前登陆用户的信息输入到注册表编纂器

HKEY_CURRENT_USER  包罗着在HKEY_USERS安适鉴别里列出的同样信息

HKEY_CURRENT_CONFIG  包孕了系统中现有的所有配置文件的细节.HKEY_CURRENT_CONFIG允许软件和设备驱动措施员很便利的更新注册表,而不涉及到多个配置文件信息. HKEY_LOCAL_MACHINE中同样的数据和任何注册表的变革城市同时的变革.

相关函数

创建键 RegCreateKeyEx(次函数主要用于生成键(目录))

函数原型

LONG RegCreateKeyEx(

HKEYhKey,                                 // handle to open key

LPCTSTRlpSubKey,                           // subkey name

DWORDReserved,                             // reserved

LPTSTRlpClass,                             // class string

DWORD dwOptions,                            // special options

REGSAMsamDesired,                          // desired security access

LPSECURITY_ATTRIBUTES lpSecurityAttributes, //inheritance

PHKEYphkResult,                            // key handle

LPDWORD lpdwDisposition                     //disposition value buffer

);

参数说明

hKey:   要打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpSubKey:   指向一个用于界说子键路径的字符串

Reserved,dwOptions,samDesired:   置0

lpClass,lpSecurityAttributes:   置NULL

phkResult:   用于接收键句柄

lpdwDisposition:   接收的相关信息,取值如下

REG_CREATED_NEW_KEY   创建告成

REG_OPENED_EXISTING_KEY    键已存在

返回值:If the function succeeds, the return value is ERROR_SUCCESS.

打开键 RegOpenKeyEx

函数原型

LONG RegOpenKeyEx(

HKEYhKey,         // handle to open key

LPCTSTRlpSubKey,  //subkey name

DWORDulOptions,   //reserved

REGSAMsamDesired, // security access mask

PHKEYphkResult    //handle to open key

);

参数说明

hKey:     要打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpSubKey:   指向一个用于界说子键路径的字符串

ulOptions:   保存位,置0

samDesired:   打开键后键的操纵权限

phResult:   接收打开的键的句柄

返回值:If the function succeeds, the return value is ERROR_SUCCESS

删除键 RegDeleteKey

函数原型

LONG RegDeleteKey(

HKEYhKey,         // handle to open key

LPCTSTRlpSubKey   //subkey name

);

参数说明

hKey:   要打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpSubKey:   指向一个用于界说子键路径的字符串

返回值:If the function succeeds, the return value is ERROR_SUCCESS

改削/添加键值 RegSetValueEx

函数原型

LONG RegSetValueEx(

HKEYhKey,           // handle to key

LPCTSTRlpValueName, // value name

DWORDReserved,      //reserved

DWORDdwType,        //value type

CONST BYTE*lpData,  //value data

DWORD cbData         // size ofvalue data

);

参数说明

hKey:   打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpValueName:   键值的名称

Reserved:   保存位,置0

dwType:   键值的类型

lpData:   键值

cbData:   键值数据长度

返回值:If the function succeeds, thereturn value is ERROR_SUCCESS

删除键值 RegDeleteValue

函数原型

LONG RegDeleteValue(

HKEYhKey,            // handle to key

LPCTSTRlpValueName   //value name

);

参数说明

hKey:   打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpValueName:   键值的名称

返回值:If the function succeeds, the return value is ERROR_SUCCESS

读取键值 RegQueryValueEx

函数原型

LONG RegQueryValueEx(

HKEYhKey,            // handle to key

LPCTSTRlpValueName,  //value name

LPDWORDlpReserved,   //reserved

LPDWORD lpType,       // type buffer

LPBYTElpData,        //data buffer

LPDWORDlpcbData      //size of data buffer

);

参数说明

hKey:   打开键的句柄或以下预界说句柄

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

lpValueName:   键值的名称

Reserved:   保存位,置0

lpType:   接收键值的类型

lpData:   接收键值

lpcbData:   接收键值数据长度