【问题标题】:How to know Overlay Icon status?如何知道覆盖图标的状态?
【发布时间】:2016-03-30 08:22:29
【问题描述】:

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

我怎样才能得到这些文件的覆盖图标。这意味着我想知道哪些文件使用图标 A,哪些文件使用图标 B,以便了解文件同步状态。

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

【问题讨论】:

  • 如果您处于文件同步状态之后,您也许可以从 SVN API 中获取该状态,而不是从图标的外观对其进行逆向工程。如果您走图标路线,请注意它会有所延误;缓存和被用户禁用。
  • @MickyD,我考虑过,但我有特殊要求,我必须得到覆盖图标。所以有什么建议吗?

标签: c# shell icons


【解决方案1】:

此代码将允许您从 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,我需要覆盖图标而不是文件图标,你能帮帮我吗?
猜你喜欢
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多