【发布时间】:2025-11-23 00:15:01
【问题描述】:
我有一个使用 Wise 安装程序安装的应用程序(编辑:Wise 创建一个 Setup.exe 文件,而不是 MSI)。安装后,为特定文件类型设置一个图标:
HKEY_CLASSES_ROOT\.auz\DefaultIcon = C:\Path\To\App\some_icon.ico,0
然而,在安装之后,Explorer 选择使用通用的“白纸 + 应用程序图标”图标来显示此图标,这是不同的(不是我提供的)。
在首次启动时,应用程序本身会注册图标和其他文件关联,以便最后运行的版本“拥有”这些文件。此时,Explorer 会更改此文件类型的图标并显示正确的图标,但当我查看注册表时,DefaultIcon 的值完全相同。
这是我目前尝试过的
- 从注册表中删除所有条目,然后自己编写。
- 安装后,“触摸” DefaultIcon 的值,然后启动一个只调用SHChangeNotify(SHCNE_ASSOCCHANGED) 的小程序(我的程序在更新注册表中的文件关联后执行此操作)。
- 安装后,杀死并重新启动资源管理器。
- 安装后,使用 TweakUI “修复”桌面上的图标。
这些都不起作用。获得正确图标的唯一方法是让程序自己安装它。我在注册表中找不到任何更改。我正在拔头发。
我想避免的事情
- 使用其他安装软件进行测试
- 过多地更改安装脚本(我没有 Wise 本身,因为安装程序是根据需要在另一台机器上构建的)。
- 在可执行文件中嵌入图标。
关于如何让资源管理器在安装后显示正确的图标有什么建议吗?
【问题讨论】:
标签: windows winapi installation icons wise