图标(DefaultIcon)显示不同

Icon (DefaultIcon) is displayed differently

我对应用程序文档文件的图标感到困惑。
首先,我正在注册文件扩展名:

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

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

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

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

我不知道 DefaultIcon 是否支持路径上的引号,除此之外注册看起来还可以。

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

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

尝试调用 SHChangeNotify,然后重新启动。如果这不能解决问题,那么您应该在注册表中搜索您的文件扩展名,并将其从 Explorers HKCU FileExts keys 和您的类型的任何 "auto" 条目中删除在 HKCR 中。清除 shell 图标缓存也可能有所帮助。