首页 > OOP语言 > VC++ > 正文

VC读注册表获取安装程序
2013-06-21 14:42:30   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

Windows 系统中,安装程序都可以在注册表 HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Uninstall获取,并且xp、vista 、win7、win8都一样

打开注册表命令:regedit,依次展开上述注册表路径,安装程序列表如下图:

\

获取系统安装程序列表:

// 获取系统安装程序列表      
 BOOL CMyListCtrlTestDlg::AllRegKey(HKEY hKey, LPCTSTR szDesKeyItem)
 {
     HKEY hSubKey;
     DWORD dwIndex = 0;
     long lResult;      
     int i = 1;      

     lResult = RegOpenKeyEx(hKey, szDesKeyItem, 0, KEY_READ, &hSubKey);      // 打开注

册表
     if(ERROR_SUCCESS == lResult) {
         TCHAR szKeyName[256] = { 0 };
         DWORD cbName = 256*sizeof(TCHAR);

         lResult = RegEnumKeyEx(hSubKey, dwIndex, szKeyName, &cbName, 0, NULL, NULL, 

NULL);      // 获取字段
         while (lResult == ERROR_SUCCESS && lResult != ERROR_MORE_DATA){
             OutputDebugString(szKeyName);


             CString str;
             str.Format(_T("%d"), i);

             i = m_MyList.InsertItem(i, str);        // 插入到List控件显示
  
             m_MyList.SetItemText(i,1,szKeyName);


             dwIndex = dwIndex + 1;          // 改变dwIndex,循环获取下移字段
             cbName = 256*sizeof(TCHAR);      
             lResult = RegEnumKeyEx(hSubKey, dwIndex, szKeyName, &cbName, 0, NULL, 

NULL, NULL);

             i++;      

         }      
         RegCloseKey(hSubKey);       // 关闭注册表
         return TRUE;
     }
     RegCloseKey(hSubKey);
     return FALSE;      
 }

相关热词搜索:

上一篇:VC++中对话框数据交换
下一篇:VC中对注册表进行操作

分享到: 收藏