日期:2014-05-20  浏览次数:20995 次

怎样用C#得到和Microsoft的控制面板中“添加或删除程序”里面显示一样的软件列表?
我现在想通过C#得到和Microsoft的“添加或删除程序”里面显示一样的软件列表
目前我找到的方式是读取注册表中的项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
但是这里的信息不完整,我安装的winrar,暴风影音都不在这显示。和“添加或删除程序”比较少了一些程序

我是64位元的机器,我发现在:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall下面也同样有程序的列表,但和上面的列表不一样。而且会出现如 "Office   word,Office   Excel "等细项

我只想得到和“添加或删除程序”显示的列表一样,请高手提供个方法或思路。不胜感激。

------解决方案--------------------
sf
帮你顶呀!
------解决方案--------------------
路过,顶起!
------解决方案--------------------
是做程序还是测试你的系统呢?
------解决方案--------------------
关注下
------解决方案--------------------
关注
------解决方案--------------------
说实话对注册表不熟
------解决方案--------------------
可能只用API了,楼主考虑一下
------解决方案--------------------
从注册表下手
------解决方案--------------------
MsiEnumProducts
http://msdn2.microsoft.com/en-us/library/aa370101.aspx
MsiEnumProductsEx
http://msdn2.microsoft.com/en-us/library/aa370102.aspx
MsiGetProductInfo
http://msdn2.microsoft.com/en-us/library/aa370130.aspx
MsiGetProductInfoEx
http://msdn2.microsoft.com/en-us/library/aa370131.aspx
------解决方案--------------------
学习,帮顶!
------解决方案--------------------
不知道wmi中有没有..
------解决方案--------------------
先确认一下你自己没读出来的在注册表里面没有么?还是说你漏掉了~
一般来说都会在注册表里面的
------解决方案--------------------
还是在注册表里没找对
再找找~

------解决方案--------------------
做個記號,幫頂一下。
------解决方案--------------------
想法很活跃,也给我带来思路
------解决方案--------------------
Mark
------解决方案--------------------
添加删除程序的列表是从注册表中读取的,不一定就是你电脑上所安的软件,感觉没有必要非要和它一致,仅仅是为了显示可反安装软件的话,从注册表中读取!
------解决方案--------------------
HKEY_LOCAL_MACHINE 里面的是所有用户的,你可能安装的时候 winrar,暴风影音 选的不是 "任何人 " 而是 "只有我 " 使用.

所以还要去
HKEY_CURRENT_USER 找找, 64位的操作系统在具体哪个位置也不太清楚了....
------解决方案--------------------
Mark
------解决方案--------------------
mark
------解决方案--------------------
..........
------解决方案--------------------
关注