注册表理解及c++操作注册表例子(未完待续)
C++注册表操作
1、注册表组成的理解
与xp系统上文件管理类似。
(1) 根键:共5个。
HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、
HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG
相当于有五个盘。
(2) 子健:可以有多个键值项及多个子健。
如:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
下面就有AGP、Arbiters等子健。还有CurrentUser、SystemBootDevice等键值项。
子健相当于一个文件夹,其下可以有多个文件夹和文件。
(3) 键值项:由3部分组成。名称、类型、数据值。
键值项相当于一个一个的文件。
2、打开/关闭注册表:
RegOpenKeyEx(
hKey, //父键句柄
lpSubKey, //子健句柄
dwOption, //系统保留,指定为0
samDesired, //打开权限
phkResult, //返回打开句柄
)
//打开键
HKEY key; //返回值存入key中
LPCTSTR data = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,data,0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS)
{ ; }
//关闭键
RegCloseKey(key);
3、查看键值基本信息及其子健基本信息(相当于打开一个目录)
RegQueryInfoKey
获取某个键的子健数目、子健中最长名称长度、子键中最长字符串长度、
键值数量、键值中最长名称长度、键值中最长字符串长度。
4、遍历某键的子健信息
RegEnumKeyEx
5、遍历某键的键值信息
RegEnumValue
查询某指定键值信息:RegQueryValueEx()
设置某指定键值信息:RegSetValueEx()
(未完待续)