访问注册表

I  需要的头文件:atlbase.h

II 访问注册表几个常用的API 函数

    1.打开注册表:

      LONG RegOpenKeyEx(HKEY hKey,//已经打开的键的句柄,或者直接是上述几个根键
                               LPCTSTR lpSubKey,//要打开的子键名字的地址
                               DWORD ulOptions,//保留值,必须为0
                               REGSAM samDesired,//打开方式,如读还是写
                               PHKEY phkResult//返回的打开的子键的句柄
                              );

2,枚举该目录下的所有子目录:
LONG RegEnumKeyEx(
  HKEY hKey, 
  DWORD dwIndex, 
  LPWSTR lpName, 
  LPDWORD lpcName, 
  LPDWORD lpReserved, 
  LPWSTR lpClass, 
  LPDWORD lpcbClass, 
  PFILETIME lpftLastWriteTime 
); 

示例 dwIndwx = 0 .从0开始递增遍历完整个子目录:
        DWORD dwIndex = 0;
	LONG  lRet;
	DWORD cbName = KEY_LEN;
	TCHAR *lpszSubKeyName = new TCHAR[KEY_LEN];
	while((lRet = ::RegEnumKeyEx(hKey, dwIndex, szSubKeyName, &cbName, NULL, NULL, NULL, NULL)) != ERROR_NO_MORE_ITEMS)
        {
                 //do what you want to
        }

3 查找特定文件的文件名,类型,数据:
   查询某一个键值:RegQueryValueEx
   函数定义:LONG RegQueryValueEx(HKEY hKey,//要查询的键的句柄
                                  LPCTSTR lpValueName,//要查询的键值的名称
                                  LPDWORD lpReserved,//保留值
                                  LPDWORD lpType,//要查询的数据的类型
                                  LPBYTE lpData,//要返回的查询的数据
                                  LPDWORD lpcbData//预置的数据的长度
                                 );
4设置一个键值RegSetValueEx:
函数定义:LONG RegSetValueEx(HKEY hKey,//要设置的键的句柄
                                LPCTSTR lpValueName,//要访问的键值的名称
                                LPDWORD lpReserved,//保留值
                                DWORD dwType,//要设置的数据的类型
                                const BYTE *lpData,//要设置的健值
                                DWORD cbData//数据的长度
                               );


总结:RegOpenKeyEx()去打开一个注册表,hKey 是几个特定的值中一个,比如:HKEY_LOCAL_MACHINE, HKEY_LOCAL_USER等。打开之后,phkResult 返回查找的KEY值,

将phkResult 传进RegEnumKeyEx()中进行枚举。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值