注册表的应用与事例(下)

原创 2001年08月25日 11:46:00
 

注册表的应用与事例(下)

文/董毅

    上篇我们说到数据类型。在注册表内只用到了这三种数据类型,还有其他的类型,但是不常用在这里我就不介绍啦。当使用到RegSetValue()来创建键的时候,VC会提供一些数据类型以及这些数据的数据指针,便于对键值的操作,而用户的程序可以保存二进制的任意类型,比如:结构类型,32值以及字符串等等。有一点需要注意,在编写WIN3.X程序时,注册表只支持REG——SZ类型的数据,这是在编程当中要注意的。
在对数据类型有一定的了解以后,我们来看看如何对键值的管理。我们上篇已经讲过如何建键,如何打开一个已知的键以及如何删除他。而对键的操作要与我们上面讲到的数据类型来结合,你才能理解,下面函数的原型。

4.RegQueryValueEx()
原型:LONG RegQueryValueEx(
HKEY hKey;
LPTSTR lpValuename;
LPDWORD lpReserved;
LPDWORD lpType;
LPBYTE lpData;
LPDWORD lpcbData;
)
解释:返回指示注册表键的数据以及类型
例子:DWORD dwSize = (DWORD) nSize;
BOOL bRet = (::RegQueryValueEx( m_hKey, lpszValueName, NULL, NULL, (unsigned char *) lpReturnBuffer, &dwSize ) == ERROR_SUCCESS );
m_dwLastError = GetLastError();

  现在我们说到的这些函数都是对注册表进行管理的,而这个函数以及下面的函数在操作时候,是通过所需注册表的句柄来实现的。注册表的句柄由调用RegOpenKeyEx()和RegCreateKeyEx()函数得到的。而这个函数是用来读取注册表的一个已知的键值的。用这个函数可以得到所需键值的名称,并且返回一个数据,数据长度和数据类型。但是在这之前必须先获得这个注册表的句柄,句柄是通过RegOpenKeyEx()与RegCreateEx()函数来获得,当需要设置和修改时,用户调用这个函数。但是有一点要注意的是,为了使该函数可以访问,必须使用KEY_SET_VALUE权限来打开键。(这个权限是在RegCreateEx()或RegOpenKeyEx()函数内设置的)

5.RegOpenKeyEx()
原型:WINADVAPI LONG APIENTRY RegOpenaKeyEx(HKEY hKey,
LPCTSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesired,
PHKEY phkResult);
解释:打开指定的键或子键。返回的句柄用于进一步的访问。应使用RegCloseKey()关闭每个打开的键。
例子:HKEY hKey;
const char *lpszSubKey
::RegOpenKeyEx( hKey,
lpszSubKey,
0,
KEY_ALL_ACCESS,
&m_hKey )

  这个函数没有什么好讲的。他的意思和他的名字一样好理解。就是打开一个给定正确路径的键或子键。我对这个函数简单的解释一下。hKey 在这里是根键的意思比如:HKE_CLASSES_ROOT,lpSubKey是指子键的名称,ulOptions是指定值,通常被定义为0,samDesired是指访问类型,不同的访问类型有不同的操作效果。PhkResult是指通过RegOpenKeyEx()函数来的到注册表的句柄,在通过句柄来进行操作。
  总结:
  对于注册表还有很多的东西要讲,但是主要用的是这些。大家在平时用到注册表的时候,希望多看看别人的例子。我在这里只说了5个函数其他函数,虽然没有讲不代表不重要在不久我还会为朋友们介绍些此类函数。大家也可以自己做一个自己喜欢的类,来完成更复杂的工作,总而言之希望大家多提宝贵意见。

注册表的应用与事例

注册表的应用与事例   喜欢编程的朋友们恐怕没有不知道VC的(Microsoft Visual C++)。而我下面要讲的是用VC来对WINDOWS 9X的注册表建立,修改和删除的一些事例,希望编程爱好...
  • Anticracker
  • Anticracker
  • 2005年02月03日 08:38
  • 1924

注册表的应用与事例(上)

  注册表的应用与事例(上)文/董毅    喜欢编程的朋友们恐怕没有不知道VC的(Microsoft Visual C++)。而我下面要讲的是用VC来对WINDOWS 9X的注册表建立,修改和删除的一...
  • xiezhsh
  • xiezhsh
  • 2001年08月25日 11:44
  • 1515

绝对经典的入侵例子

收获的日子 (原创作者:xhacker) 攻击难度:高 防护难度:高 流行度:1(共0~10个档) 一家安全公司的管理员向我挑衅,嘲笑着提出要求让我来入侵他们的网络并且不能让他知道,言语中很明显贬低别...
  • flycock
  • flycock
  • 2006年01月13日 16:20
  • 1053

关于栈及其应用示例

栈和线性表类似,也是有两种存储结构,分别为顺序结构和链式结构。大部分情况下,栈使用前者,这和它的使用场景有关,因为通常情况下我们不会对栈进行频繁地,随机地插入,删除操作。下面是我用顺序结构实现的栈,这...
  • pony_maggie
  • pony_maggie
  • 2014年06月14日 21:38
  • 10027

Windows 98注册表使用技巧27则

1.备份“收信助理”中的内容   点击HKEY_USER/.DEFAULT/ SOFTWARE/MICROSOFT/OUTLOOKEXPRESS/ MAIL/INBOXRULES,选择“INBOXRU...
  • swfhcsdn
  • swfhcsdn
  • 2007年08月23日 20:56
  • 619

散列表(哈希表)应用实例,同时借助最小堆

哈希表应用,百度面试实例
  • wangjiang1234554321
  • wangjiang1234554321
  • 2016年03月03日 15:20
  • 781

重启验证使用的API与下断

[源自看雪,地址不详]重启验证类重启验证类软件大致的验证过程。1、运行软件输入注册信息,点注册后。一般软件会提示你重新运行软件,以便验证注册信息的正确性(如FlashGet);也有的只在你输入正确的注...
  • TY1921
  • TY1921
  • 2008年05月07日 19:51
  • 1603

系统环境变量和用户环境变量在注册表的那个位置

系统环境变量和用户环境变量在注册表的那个位置.
  • stf1065716904
  • stf1065716904
  • 2017年06月30日 22:02
  • 214

注册表原理与使用

服务器、工作站、路由器、交换机   嵌入式操作系统 注册表原理与使用   注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统...
  • haiross
  • haiross
  • 2014年03月13日 08:48
  • 3030

巧用Windows注册表进行计算机司法取证分析工作

注册表是Windows操作系统(9x/Me/Nt/2000/XP)、硬件设备及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统。它记录了用户安装在计...
  • zhengmeifu
  • zhengmeifu
  • 2011年12月20日 12:48
  • 1639
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:注册表的应用与事例(下)
举报原因:
原因补充:

(最多只允许输入30个字)