C# 如何知道覆盖图标状态?

C# 如何知道覆盖图标状态?,c#,shell,icons,C#,Shell,Icons,在Dropbox、TortoiseSvn等应用程序中,文件图标底部附有小图标 如何获取这些文件的覆盖图标。这意味着我想知道哪些文件使用图标A,哪些文件使用图标B以了解文件同步状态 c中有什么方法可以做到这一点吗?此代码允许您从windows中的文件中提取相关图标 var sysicon = System.Drawing.Icon.ExtractAssociatedIcon(ExePath); var bmpSrc = System.Windows.Interop.Imaging.CreateBi

在Dropbox、TortoiseSvn等应用程序中,文件图标底部附有小图标

如何获取这些文件的覆盖图标。这意味着我想知道哪些文件使用图标A,哪些文件使用图标B以了解文件同步状态


c中有什么方法可以做到这一点吗?

此代码允许您从windows中的文件中提取相关图标

var sysicon = System.Drawing.Icon.ExtractAssociatedIcon(ExePath);
var bmpSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
                                    sysicon.Handle,
                                    System.Windows.Int32Rect.Empty,
                                    System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
                        sysicon.Dispose();
                        bmpSrc.Freeze();
                        fileIcon = bmpSrc;

文件图标与覆盖图标不同。一个嵌入到文件中或由应用程序提供。覆盖图标叠加在前一个图标上。是的,@Thimmoth,我需要覆盖图标而不是文件图标,你能帮我吗?如果你在文件同步状态之后,你可能可以从SVN API获得,而不是从图标的外观进行反向工程。如果您选择图标路线,请注意它可能会延迟;缓存和被用户禁用。@MickyD,我考虑过这种方式,但我有特殊要求,我必须得到覆盖图标。有什么建议吗?