夏天/isummer

Sun of my life !Talk is cheap, Show me the code! 追风赶月莫停留,平芜尽处是春山~

博客园 首页 新随笔 联系 管理

 

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;

posted on 2017-07-12 18:59  夏天/isummer  阅读(1109)  评论(0编辑  收藏  举报