VC从注册表读取系统所有文件类型

 HKEY hKEY; 
 HKEY hkey;
 DWORD numSubKey=0;     //存放子键的项数
 DWORD   sizeSubKey=255;      //子键大小
 TCHAR subKey[255];   //子键名
 char sz[80];      DWORD dwtype, sl;
 ZeroMemory(sz,sizeof(sz));   //清空内存,初始化
 ZeroMemory(subKey,sizeof(subKey));
 CString str;
 long ret0=(::RegOpenKeyEx(HKEY_CLASSES_ROOT, "", 0, KEY_READ,&hKEY));  //打开主键,获得子项数量  
 if(ret0!=ERROR_SUCCESS)     //如果无法打开hKEY,则终止程序的执行
 {
  MessageBox("错误: 无法打开有关的hKEY!");
  return;
 }
 RegQueryInfoKey(hKEY,NULL,NULL,NULL,&numSubKey,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 
 if (numSubKey)       /*如果子键数不为0,遍历子键*/
 {
  for (DWORD i=0; i<numSubKey; i++) 
  {
   subKey[0]='/0'; sizeSubKey=255;   
   RegEnumKeyEx(hKEY,i,subKey,&sizeSubKey,NULL,NULL,NULL,NULL);  //获得子项名称
   ret0=(::RegOpenKeyEx(HKEY_CLASSES_ROOT,subKey, 0, KEY_READ,&hkey));  //打开子键
   if(ret0!=ERROR_SUCCESS)
   {
    return;
   }
   dwtype=REG_SZ, sl = 80;
   long ret1=RegQueryValueEx(hkey,NULL,NULL, &dwtype,(LPBYTE)sz, &sl);  //取值
   str=sz; 
   if(str!="")   //如果取得的值不是空,则添加到搜索列表
   {
    str=str+"(*"+subKey+")";
    m_SearchType.InsertString(-1,str);    //插入到下拉列表
   }
  }
 }
 RegCloseKey(hkey);
 RegCloseKey(hKEY); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值