首页 文章

如何从添加/删除程序控制面板获取图标

提问于
浏览
2

我'm trying to do an application that basically emulates the add /remove programs feature of Windows Control Panel. I'目前正在使用注册表,我不使用 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 Key上提取应用程序的图标 .

其次,尝试识别 C:\Windows\Installer\FOLDER 以在那里提取某个文件的图标 . 但并不完美,我只获得了大约80%的图标 . 我知道有很多程序可以做得很好......例如“ SoftwareInformer ” .

我读了它,我发现有关 ARPPRODUCTICONWiX 的信息 Icon Table ,但我不确定该表在哪里,有没有办法访问它 .

此外,我搜索一个没有运气的开源应用程序 .

4 回答

  • 1

    如果你能够获得已安装的exe的路径(从注册表值获取)

    使用这种方法

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

    // _ fullPath是你的exe文件的路径,如果exe有一个相关的图标,它就可以完美地运行

    它对我来说是100%的工作

  • 4

    我可能为派对来不及,但如果你检查下

    HKEY_CLASSES_ROOT\Installer\Products\{GUID}
    

    你会发现带有路径的“ProductIcon”字符串值(不是适用于所有产品) . 我认为它与:\ Windows \ Installer 文件夹中的基本相同 . 但即使是“程序和功能”也没有显示所有图标 .

    PS:当然,我不能发布一张图片,因为我没有足够的分数,呵呵..

  • 0

    并非控制面板小程序中列出的所有应用程序都有一个“应用程序”图标 - 有些只使用默认图标,例如“Microsoft Device Emulator(64位)3.0版 - ENU”

  • 0

    如果它是您正在寻找的Windows原生图标,您可能有比您想象的更多的地方(已经在您自己的机器上) .

    在对“从图标中移除快捷方式箭头”问题进行故障排除时,我偶然发现了这条信息链接 . 在阅读以下链接中的信息后,您很可能会找到所需内容 . 该链接仅在性质上是信息性的,不提供图标下载(毕竟,它们已经在您的计算机上) .

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

相关问题