0 前言
由于电脑经常会关闭,或者应用程序也会经常关闭,但有一些参数是经常需要保存。比如当你打开程序,并设置了窗口的大小,想每次打开时都设置窗口为上次打开的大小。这样就需要保存窗口的大小,那么窗口大小的参数保存到那里呢?其实在Windows里最方便的做法,就是保存到注册表里。又比如游戏登录时,总是想保存最后一个登录的用户,那么也需要保存这个用户到注册表里。其实注册表是Windows保存系统配置的数据库,比如不同的语言设置,不同的时区设置,不同的用户登录,不同的权限等等。下面就来学习怎么样使用函数RegOpenKeyEx来打开注册表里的键和用函数RegCreateKeyEx来创建新的键。
在程序中使用注册表,不外乎创建、打开、读取、设置、删除这五个常规操作,
数据结构
注册表由“键或称为项”、子健(子项)和值项构成。一个键就是分支中的一个文件夹。子健也被称为“键”。其中最顶层的键称为“主键”。一个值项是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为改建的默认值。
注册表的数据类型主要有以下四种:
各主键的简单介绍
一、 创建键RegCreateKeyEx
通过RegCreateKeyEx函数可以在注册表中创建键,如果需要创建的键已经存在了,则打开键。函数原型
LONG RegCreateKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD Reserved,
LPTSTR lpClass,
DWORD dwOptions,
REGSAM samDesired,
LPSECURITY_ATTRIBUTESlpSecurityAttributes,
PHKEY phkResult,
LPDWORD lpdwDisposition
);
二、 打开键RegOpenKeyEx
RegOpenKeyEx函数可以打开一个指定的键,函数原型如下:
LONG RegOpenKeyEx(
HKEY hkey,
LPCTSTR lpSubKey,
DWORD ulOption,
REGSAM samDesired,
PHKEY phkResult
);
三、 删除键RegDeleteKey
函数RegDeketeKey删除一个键及所有的子键。函数原型如下:
LONG RegDeleteKey(
HKEY hKey,
LPCTSTR lpSubKEY
);
四、 修改/添加键RegSetValueEx
RegSetValueEx函数可以设置(添加、修改)注册表中键的值,函数原型如下:
LONG RegSetValueEx(
HKEY hKey,
LPCTSTR lpValueName,
DWORD Reserved,
DWORD dwType,
CONST BYTE *lpData,
DWORD cbData
);
五、 读取键值RegQueryValueEx
通过RegQueryValueEx函数可以从一个已经打开的键中读取数据,函数原型如下:
LONG RegQueryValueEx(
HKEY hKey,
LPTSTR lpValueName,
LPDWORD lpReserved,
LPDWORD lpType,
LPBYTE lpData,
LPDWORD lpcbData
);
六、注册表的操作流程
endl;