c# 怎么获取电脑上安装的所有软件(急!!!!)

MrDawn MrDawn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
想做一个软件启动时要检查硬件设备是否已经安装驱动,谷歌了,也百度了,没找到答案,现在换种思维,想先获得电脑上所有已经安装的软件,然后在和驱动软件名对比,有则已经安装了该驱动。问题是怎样获取电脑上安装的所有软件呢?
要求:能获取控制面板中程序里面列出来的所有软件??
网上搜到的两种方法都不行,第一种是读注册表
string SoftwareKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";

using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(SoftwareKey))
{

foreach (string skName in rk.GetSubKeyNames())
{
using (RegistryKey sk = rk.OpenSubKey(skName))
{
try
省略...
第二种是导入两个动态链接库
[DllImport("msi.dll",SetLastError=true)]
static extern int MsiEnumProducts(int iProductIndex,StringBuilder lpProductBuf);
[DllImport("msi.dll", SetLastError = true)]
static extern int MsiGetProductInfo(string szProduct,string szProperty,[Out]StringBuilder lpValueBuf,[In,Out] ref int pcchValueBuf);

两种都试了,均不能获得控制面板程序里的所有软件?呼吁高手支招!!!!!!
...全文
评论 6
收藏 已收藏
分享
返回顶部
MrDawn
C# 111,129 成员 642,539 内容