vc访问注册表

    注册表是Windows内部的一个巨大的树状分层数据库。它记录用户安装在机器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配置信息和各种即插即用的设备的信息。注册表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些windows程序的运行,在整个系统中起着核心作用。

   注册表中包含了几个根键:    HKEY_LOCAL_MACHINE,HKEY_CLASSES_ROOT,

      HKEY_CURRENT_USER,HKEY_USERS,HKEY_CURRENT_CONFIG.

     我们需要访问的子键都是在上述的几个根键下面。

     介绍一下几个常用的注册表访问函数。

LONG RegOpenKeyEx(
  HKEY hKey,         // handle to open key
  LPCTSTR lpSubKey,  // subkey name
  DWORD ulOptions,   // reserved
  REGSAM samDesired, // security access mask
  PHKEY phkResult    // handle to open key
);该函数的作用是打开需要访问的注册表子键,hKey为上述的几个根键的一个,lpSubKey为需要访问的子键的字符串描述,比如说:
SYSTEM//CurrentControlSet//Control//Print//Printers。ulOptions一般设置为空。samDesired为访问的安全掩码,如果为只读则设置为
KEY_READ,具体有哪些访问安全掩码可以参考msdn.phkResult为输出参数,为打开的子键的句柄。
LONG RegQueryInfoKey(
  HKEY hKey,                      // handle to key
  LPTSTR lpClass,                 // class buffer
  LPDWORD lpcClass,               // size of class buffer
  LPDWORD lpReserved,             // reserved
  LPDWORD lpcSubKeys,             // number of subkeys
  LPDWORD lpcMaxSubKeyLen,        // longest subkey name
  LPDWORD lpcMaxClassLen,         // longest class string
  LPDWORD lpcValues,              // number of value entries
  LPDWORD lpcMaxValueNameLen,     // longest value name
  LPDWORD lpcMaxValueLen,         // longest value data
  LPDWORD lpcbSecurityDescriptor, // descriptor length
  PFILETIME lpftLastWriteTime     // last write time
);该函数为查询指定的子键的信息,比如说有多少个子键,子键的字符串名字的最大长度等等。
LONG RegEnumKeyEx(
  HKEY hKey,                  // handle to key to enumerate
  DWORD dwIndex,              // subkey index
  LPTSTR lpName,              // subkey name
  LPDWORD lpcName,            // size of subkey buffer
  LPDWORD lpReserved,         // reserved
  LPTSTR lpClass,             // class string buffer
  LPDWORD lpcClass,           // size of class string buffer
  PFILETIME lpftLastWriteTime // last write time
);该函数遍历指定键的子键,每次获取一个子键的信息。
LONG RegQueryValueEx(
  HKEY hKey,            // handle to key
  LPCTSTR lpValueName,  // value name
  LPDWORD lpReserved,   // reserved
  LPDWORD lpType,       // type buffer
  LPBYTE lpData,        // data buffer
  LPDWORD lpcbData      // size of data buffer
);获取指定的键的指定值项的值。
下面给出一个具体的例子:
 
运行结果如下图所示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值