QQ登录

只需一步,快速开始

374上位机VC MFC通过注册表获取全部安装程序

[ 复制链接 ]

374上位机VC MFC通过注册表获取全部安装程序

374上位机VC MFC通过注册表获取全部安装程序

通过注册表获取全部安装程序
功能展示
360或任务管理器都可以查看系统全部安装程序进行卸载,安装的程序是如何查找的呢?Windows 系统中,安装程序都可以在注册表?HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Uninstall?获取,并且xp、vista、win7、win8都一样,我们当前例程就实现了系统安装程序的获取,效果如图,点击按钮,就可以获得全部安装程序及程序的相关信息

要点提示
系统中安装程序信息在注册表?HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Uninstall?
都可以获取到。注册表的打开可以用函数RegOpenKeyEx()字段的获取可以用函数RegEnumKeyEx()注册表关闭可以用函数RegCloseKey(); 函数的具体介绍可以查阅MSDN手册,或参阅例程的具体使用方法;

实现功能
1.新建基于对话框的应用程序
2.添加一列表框并关联变量CListCtrl m_MyList;用于显示查找的结果;添加一按钮控件关联点击函数
void CGkbc8Dlg::OnButton1()
{
AllRegKey(HKEY_LOCAL_MACHINE, TEXT("SoftWare\\Microsoft\\Windows\\CurrentVersion\\Uninstall"));
}
3.函数中调用有一自定义函数,所以再添加这一函数
BOOL CGkbc8Dlg::AllRegKey0(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;
}

我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:374.上位机VC MFC通过注册表获取全部安装程序.zip 
文件大小:141.37 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索