关于注册表
最近在做一个项目,我主要负责软件的软件的注册,包括客户端和服务器端开发。一个软件必须要加密才可以买钱,所以必须将软件的信息写入注册表。
1、什么是注册表
注册表是WINDOW的重要组成部分,记录了很多关于软硬件的信息。注册表中的值通过其名称进行标识。值名称由与键名相同的字符组成。值本身可以是字符串、二进制数据或者是32位无符号值。
2、说明
(1)HKEY_LOCAL_MACHINE 包含描述计算机及其配置的条目。其中包括关于处理器、系统主板、内存和已安装的软件和硬件的信息。
1、什么是注册表
注册表是WINDOW的重要组成部分,记录了很多关于软硬件的信息。注册表中的值通过其名称进行标识。值名称由与键名相同的字符组成。值本身可以是字符串、二进制数据或者是32位无符号值。
2、说明
(1)HKEY_LOCAL_MACHINE 包含描述计算机及其配置的条目。其中包括关于处理器、系统主板、内存和已安装的软件和硬件的信息。
(2)HKEY_CLASSES_ROOT 是与文档类型和 OLE\COM 相关的信息的支持键。这个键是 HKEY_LOCAL_MACHINE的从属键。
(3)HKEY_USERS 用作默认用户首选设置,也作为单个用户的首选设置。
(4)HKEY_CLASSES_USER 是用于当前(登录)用户的相关信息。
(5)HKEY_CURRENT_CONFIG 包含了当前系统配置的信息。
3、目前的访问手段(regedit, regedt32,第三方软件,编程)
Windows提供了三种方式供编程实现:函数,Shell函数,CRegKey类(由ATL库提供,是对API的封装,简化了部分功能)。这三种方式的提供的函数大同小异;由于它们对注册表操作的函数都是原子动作,故功能强大却使用不便。
类比:dir浏览当前文件夹下的子文件夹和文件,却无法知道子文件夹中有什么;注册表操作函数也仅能浏览当前Key下的Subkey和Value,却无法知道Subkey中有什么
4、CRegKey 类及主要使用和函数说明
所需要头文件:atlbase.h
常用函数 ☆ 打开一个键的函数:RegOpenKeyEx
函数定义:LONG RegOpenKeyEx(HKEY hKey,//已经打开的键的句柄,或者直接是上述几个根键
LPCTSTR lpSubKey,//要打开的子键名字的地址
DWORD ulOptions,//保留值,必须为0
REGSAM samDesired,//打开方式,如读还是写
PHKEY phkResult//返回的打开的子键的句柄
);
☆ 查询某一个键值:RegQueryValueEx
函数定义:LONG RegQueryValueEx(HKEY hKey,//要查询的键的句柄
LPCTSTR lpValueName,//要查询的键值的名称
LPDWORD lpReserved,//保留值
LPDWORD lpType,//要查询的数据的类型
LPBYTE lpData,//要返回的查询的数据
LPDWORD lpcbData//预置的数据的长度
);
☆ 设置一个键值RegSetValueEx
函数定义:LONG RegSetValueEx(HKEY hKey,//要设置的键的句柄
LPCTSTR lpValueName,//要访问的键值的名称
LPDWORD lpReserved,//保留值
DWORD dwType,//要设置的数据的类型
const BYTE *lpData,//要设置的健值
DWORD cbData//数据的长度
);

posted on 2006-05-22 12:26 mjgforever 阅读(334) 评论(0) 收藏 举报
浙公网安备 33010602011771号