2010-11-18 45 views
1

我试图做一个基本上模拟Windows控制面板的添加/删除程序功能的应用程序。我目前正在使用注册表,我没有使用WMI,因为它的速度非常慢,只能返回由.msi文件安装的软件,我正在阅读的键有:如何从添加/删除程序中获取图标控制面板

HKLM \ SOFTWARE \ Microsoft \的Windows \ CurrentVersion \卸载HKCU \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载HKLM \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载HKCU \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载

和我有我想想所有的软件安装,但有一个问题的图标,我不知道如何提取出现在控制面板上的图标。某些按键具有DisplayIcon属性,但其他按键没有。我尝试了两件事:

首先在DisplayIcon键上提取应用程序的图标。

其次,尝试识别C:\ Windows \ Installer \ FOLDER以提取某个文件的图标。但并不完美,我只获得约80%的图标。我知道有很多程序可以很好地执行此操作,例如“SoftwareInformer”。

我读了一下,我发现有关ARPPRODUCTICON和WiX的信息IconTable,但我不知道该表在哪里,并且有什么方法可以访问它。

另外我搜索一个开放源代码的应用程序,这样做没有运气。

回答

3

我也许来不及为党,但如果你下

HKEY_CLASSES_ROOT\Installer\Products\{GUID} 

检查,你会发现“ProductIcon”与路径字符串值(不所有产品虽然)。 我认为它基本上与{sys_drive}:\ Windows \ Installer {GUID}文件夹中的一样。但即使“程序&功能”也不显示所有图标。

PS:而且,我当然不能张贴图片,因为我没有足够的积分,DOH ..

1

不是在控制面板小程序中列出的所有应用程序都有一个“应用程序”图标 - 有的只是使用默认的图标,例如,“Microsoft设备仿真器(64位)版本3.0 - ENU”

0

,如果你能让你安装的EXE 的路径(获得从注册表值)

使用这种方法

radiobutton.Image = Icon.ExtractAssociatedIcon(_fullPath).ToBitmap(); 

// _ FULLPATH是你的EXE文件的路径,如果EXE让他们相关的图标它完美

它正在100%,我

0

如果它是你正在寻找Windows自带的图标,你可能有更多的地方找到他们比你想象的(已经在你自己的机器上)。

我偶然发现了这条信息链接,同时排除了从图标中删除快捷箭头问题。阅读以下链接中的信息后,您很可能会找到您要查找的内容。该链接仅在大自然中提供信息,并且不提供图标下载(毕竟,它们已经在您的计算机上)。

https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/

相关问题