出于某种原因,为.lnk文件调用SHGetFileInfo会返回带有链接覆盖的图标,即使我没有请求它:
Shell.SHGetFileInfo(path, 0, ref shFileInfo, (uint)Marshal.SizeOf(shFileInfo),
SHGFI.ICON | SHGFI.SMALLICON | SHGFI.TYPENAME | SHGFI.DISPLAYNAME);
我正在使用shFileInfo.hIcon来获取图标句柄(Windows 7,x64)。关于为什么会发生这种情况的任何建议,以及如何获得没有叠加层的图标?
答案 0 :(得分:2)
我终于能够通过获取系统图像列表中的图标索引并使用ImageList_GetIcon获取无覆盖图标的句柄来解决此问题: