.NET:如何创建文件图标叠加层

发布于 2024-08-26 21:48:22 字数 318 浏览 9 评论 0原文

我正在尝试在各种文件的图标上添加不同的图标覆盖(注意:并非特定类型的所有文件,只是某些文件)。如果您不明白我的意思,我指的是 TortoiseSVN、TortoiseHG、Dropbox 等程序的功能。

这可以在.NET 中完成吗?如果是这样,怎么办?我希望有一个图书馆可以解决这个问题。我找到了这篇 CodeProject 文章关于类似的事情,但它不是.NET。

提前致谢。

I'm trying to add different icon overlays over the icons of various files (note: not all the files of a certain type, just certain files). If you don't get what I mean, I'm referring to what programs like TortoiseSVN, TortoiseHG, Dropbox, etc. do.

Can this be done in .NET? If so, how? I'm hoping there's a library out there for this. I found this CodeProject article about something like this, but it's not .NET.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

琉璃梦幻 2024-09-02 21:48:22

不,这不是 .NET。 Shell 编程属于非托管 C/C++ 领域。 Shell32.dll 有一个类型库,使某些函数可用于脚本语言和.NET。但 IShellIconOverlay 接口继承自 IUnknown,无法通过脚本访问。这在技术上是可行的,但您必须使用 SDK 的 ShlObj.h 头文件中的声明作为模板,在 C# 中重新声明接口。也许有人已经在某个地方做到了这一点,但尝试让它发挥作用的情况并不常见。谷歌快速搜索没有发现任何有用的东西。

希望 .NET 4.0 能够恢复一些活动,解决 CLR 版本注入问题。我还没有看到它的迹象。

No, it's not .NET. Shell programming is in the domain of unmanaged C/C++. Shell32.dll has a type library that makes some functions available to scripting languages and .NET. But the IShellIconOverlay interface inherits from IUnknown, not accessible to scripting. It is technically possible but you'll have to redeclare the interface in C#, using the declaration in the SDK's ShlObj.h header file as a template. Somebody has done it somewhere, probably, but it is uncommon to try to make it work. A quick Google search turns up nothing useful.

Hopefully, .NET 4.0 will revive some activity, solving the CLR version injection problem. I haven't yet seen a sign of it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文