3

我正在尝试获取计算机上已安装软件的图标。

安装的软件列表从此注册表路径填充: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

根据 DisplayName 排除重复项。

现在我尝试从键 DisplayIcon 中获取图标。如果它存在。DisplayIcon 中的值因软件而异。一些例子是休闲:

  • D:\Program Files\FileZilla FTP 客户端\FileZilla.exe
  • C:\Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller\OSETUP.DLL,1
  • D:\Program Files\Fiddler2\IE_Toolbar.ico
  • dfshim.dll,2
  • D:\Program Files\Winamp\winamp.exe,0
  • 等\git.ico

对于所有这些示例,我都可以使用图标。如果 InstallLocation + DisplayIcon 不是真正的来源,我可以在 InstallLocation 中搜索 DisplayIcon 名称(例如:GetDataBackFor* 的 DisplayIcon 是 gdbnt.exe,所以我搜索这个,如果找到我就拿他的图标)

问题是其他应用程序(如 revo 或 windows 卸载程序)如何获取没有 DisplayIcon 键的应用程序图标。他们只有根目录的 InstallLocation。他们在那个位置搜索ico或exe?如果它们是多个可执行文件并且该可执行文件的名称看起来不像 DisplayName,该怎么办?如果注册表中没有此类信息,他们如何从主可执行文件中汇集图标?此类应用程序的示例包括 Google 地球、Apple 软件更新等。

4

1 回答 1

0

我们可以从以下位置找到有关已安装产品图标的信息 此信息与卸载一起存储在注册表中的 Installer\product key 中 -

密钥名称 - HKEY_CLASSES_ROOT\Installer\Products{productID}

价值 - ProductIcon

从这里我们可以得到已安装应用程序的图标。有关更多详细信息http://newapputil.blogspot.in/2015/06/extract-icons-of-installed-windows_17.html

于 2015-06-16T10:51:19.453 回答