举例说吧:
要把 test.exe 的图标利用 UpdateResource 等函数替换成 doc 文档默认图标,
电脑上没装 MSOffice,只装了 WPS2007 个人版,
首先通过读取注册表 HKEY_CLASSES_ROOT\.doc,键值为 WPS.Doc.6,
然后再读取 HKEY_CLASSES_ROOT\WPS.Doc.6\DefaultIcon,
键值为 d:\WPS\office6\wps.exe,3,
我是这样的理解的:doc 文档的默认图标是采用 wps.exe 的第3个图标资源。
随即通过 UpdateResource 等函数替换 test.exe 图标,
结果如下图,明显的两个图标不一样啊!
请指教,问题出在哪里了?
要把 test.exe 的图标利用 UpdateResource 等函数替换成 doc 文档默认图标,
电脑上没装 MSOffice,只装了 WPS2007 个人版,
首先通过读取注册表 HKEY_CLASSES_ROOT\.doc,键值为 WPS.Doc.6,
然后再读取 HKEY_CLASSES_ROOT\WPS.Doc.6\DefaultIcon,
键值为 d:\WPS\office6\wps.exe,3,
我是这样的理解的:doc 文档的默认图标是采用 wps.exe 的第3个图标资源。
随即通过 UpdateResource 等函数替换 test.exe 图标,
结果如下图,明显的两个图标不一样啊!
请指教,问题出在哪里了?
你可以使用 Visual Studio 以资源方式打开 exe 文件,就能看见资源ID了。
用 VC 以资源方式打开 exe 文件,
这里的 3,表示的是 Icon 资源中排名第 3+1 的那个图标资源,
再用 PE 工具分析,这个图标是在 RT_GROUP_ICON 组中,
对应的 ID 就是排名第 3+1 的那个图标资源的 ID。