Vc 枚举注册表键值名

  void  CEnumRegValueDlg::OnEnum()

 {

      HKEY     lKey;                       //定义一个键的句柄,用于存储被打开的键

      HKEY     hKey;                     //初始的值

      CString  psKey;                  //要打开的键的名称

      long      IResult;                 //操作注册表函数的返回值

      CList<CString,CString&> listvalue;     //定义链表存储枚举得到的键值名

      CString   strList;

      DWORD   numValues,maxLenValueName,maxLenValueData,lpType,lenValue;

      char  *ValueName=new   char[1024];                       //存储得到的键值名

      BYTE  *lpData=new  BYTE[1024];                              //存储得到的键值数据

      DWORD  lenData;                                                        //存储键值的数据长度

      hKey =HKEY CURRENT USER;                                       //初始根键

      psKey="SOFTWARE//MICROSOFT//INTERNET EXPLORE//Main";//子键名称及位置

      IResult=RegOpenKeyEx(hKey,LPCSTR(psKey),0,KEY READ,&IKey);

 

      if(ERROR_SUCCESS!=IResult)

      {

            MessageBox("错误:无法打开有关的注册表键值!");

       }

       IResult=RegQueryInfoKey(lKey,NULL,NULL,0,NULL,NULL,NULL,&numValues,

                                                &maxLenValueName,&maxLenValueData,NULL,NULL);

       if(ERROR_SUCCESS!=IResult)

       {

                MessageBox("错误:未能正确获取键的信息!");

                return;

       }

       for(int i=0;ERROR SUCCESS==IResult,i<(int)numValues;i++)

       {

              lenValue=maxLenValueName;

              lenData=1024;

              //枚举键值

              lResult=RegEnumValue(IKey,i,ValueName,&lenValue,0,&lpType,lpData,&lenData);

              //将键值放到链表中

              strList=ValueName;

              listValue.AddTail(strList);

       }

       //遍历链表,将其值添加到列表框中

       POSITION  post=listvalue.GetHeadPosition();

       while(post!=NULL)

       {

             strList=listValue.GetNext(post);

             m_ctlList.InsertString(-1,strList);

       }

 

        delete  ValueName;

        delete   lpData;

 

 

 

}         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值