![Desktop.ini 中的 IconIndex 值为 -101 是否指向 DLL 中的第二个图标?](https://linux22.com/image/1443504/Desktop.ini%20%E4%B8%AD%E7%9A%84%20IconIndex%20%E5%80%BC%E4%B8%BA%20-101%20%E6%98%AF%E5%90%A6%E6%8C%87%E5%90%91%20DLL%20%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%BA%8C%E4%B8%AA%E5%9B%BE%E6%A0%87%EF%BC%9F.png)
我有一个文件夹在 Windows 资源管理器中显示为:
在此文件夹中,隐藏的desktop.ini 包含以下内容:
[.ShellClassInfo]
[email protected],-12688
IconFile=%SystemRoot%\system32\mydocs.dll
IconIndex=-101
这mydocs.dll
实际上包含二图标,其中第二一个是Windows资源管理器用来显示上述文件夹的图标。
那么,desktop.ini 内容的最后一行不应该是IconIndex=1
(假设 Windows 从 0 开始计数)而不是吗IconIndex=-101
?
我尝试将该-101
值解释为二进制、十六进制、八进制,但没有一个可以转换成代表第二个图标的数字。
那么,-101
指向第二个图标的值是如何的呢mydocs.dll
?
答案1
负 IconIndex 指的是资源 ID。 看这个微软开发博客:
在 Windows 95 中,ExtractIcon 函数得到了增强,因此您还可以通过将其负数作为图标索引传递来通过资源 ID 指定图标。
另请参阅Microsoft 文档。
对于您来说,使用的图标有一个资源 ID:101因此它显示为-101检查了自己的mydocs.dll后发现,你显示的图标的资源ID是101,第一个图标(包含文档的文件夹)的资源ID是100。