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