我正在尝试创建一个基本上模拟Windows控制面板的添加/删除程序功能的应用程序。我目前正在使用注册表,我不使用
WMI
因为是SL SLOW而且只返回由.msi
文件安装的软件,我正在阅读的是我正在阅读的密钥:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
我认为所有软件都安装了,但图标有问题,我不知道如何提取出现在控制面板上的图标。有些键具有DisplayIcon属性,但有些键则没有。我尝试了两件事:
首先在DisplayIcon
密钥上提取应用程序的图标。
其次,尝试识别C:\Windows\Installer\FOLDER
以提取某个文件的图标。但并不完美,我只获得了大约80%的图标。我知道有很多程序可以做得很好......例如“SoftwareInformer
”。
我阅读了相关内容,但我找到了有关ARPPRODUCTICON
和WiX
以及Icon Table
的信息,但我不确定该表在哪里,是否有任何方法可以访问它
我也在搜索一个没有运气的开源应用程序。
答案 0 :(得分:4)
我参加派对可能为时已晚,但如果您在
下查看HKEY_CLASSES_ROOT\Installer\Products\{GUID}
您将找到带有路径的“ProductIcon”字符串值(但不适用于所有产品)。 我认为它与{sys_drive}:\ Windows \ Installer {GUID}文件夹中的基本相同。但即使是“程序和功能”也没有显示所有图标。
PS:当然,我无法发布图片,因为我没有足够的分数,呵呵......答案 1 :(得分:1)
并非控制面板小程序中列出的所有应用程序都有“应用程序”图标 - 有些只使用默认图标,例如“Microsoft Device Emulator(64位)3.0版 - ENU”
答案 2 :(得分:0)
如果您能够获得已安装exe的路径 (从注册表值获取)
使用此方法
radiobutton.Image = Icon.ExtractAssociatedIcon(_fullPath).ToBitmap();
// _ fullPath是你的exe文件的路径,如果exe有一个相关的图标,它就可以完美地运行
它对我来说是100%的工作
答案 3 :(得分:0)
如果它是您正在寻找的Windows原生图标,您可能有更多地方可以找到它们(已经在您自己的机器上)。
在对“从图标中移除快捷方式箭头”问题进行疑难解答时,我偶然发现了这条信息链接。在阅读以下链接中的信息后,您很可能会找到所需内容。该链接仅在性质上是信息性的,不提供图标下载(毕竟,它们已经在您的计算机上)。
https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/