图标(DefaultIcon)显示不同

时间:2017-03-01 09:00:09

标签: windows icons registry file-association

我正在努力处理应用程序文档文件的图标 首先,我正在注册文件扩展名:

HKEY_CLASSES_ROOT\.Ext\(default) = AppName

然后我给它一个shell打开命令和一个图标:

HKEY_CLASSES_ROOT\[AppName]\shell\open\command\(default)="path\app.exe"
HKEY_CLASSES_ROOT\[AppName]\DefaultIcon\(default)="path\app.exe",0

图标显示在资源管理器中,但不是原始图标,而是显示在白纸上:

enter image description here

左边是关联文件,右边是可执行文件。

如何设置注册表项以显示原始图标?

1 个答案:

答案 0 :(得分:1)

我不知道DefaultIcon是否支持路径上的引号,除了注册看起来没问题。

写完这些条目后,您应该致电SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0),以便其他应用程序可以自行刷新。

文档图标由shell(GIL_SIMULATEDOC)生成,当它找不到有效的DefaultIcon条目但它知道它将使用哪个可执行文件时。如果您在没有注册时使用“打开方式”打开文件类型,则会发生这种情况。

尝试拨打SHChangeNotify,然后重新启动。如果这不能解决问题,那么您应该在注册表中搜索您的文件扩展名,并将其从Explorers HKCU FileExts密钥 s 以及您在HKCR中输入的任何“自动”条目中删除。清除shell iconcache可能也有帮助。