从 DLL 中获取图标

发布于 2024-07-27 14:06:10 字数 258 浏览 3 评论 0原文

我从第三方库获取以下内容(一个示例):

@%SystemRoot%\SomePath\SomeFile.Dll,-203

我从上下文中知道这是一个图标。 我的问题是,我将如何获取这些“地址”并实际提取数据?

与此相关的是,我还想知道从普通 EXE 中提取显示的(从 shell 中)图标的最佳方法。

我正在使用 C# 工作,但我也可以使用 C 或 C++ 示例。

I'm getting the following from a third party library (one example):

@%SystemRoot%\SomePath\SomeFile.Dll,-203

I know from context that this is an icon. My question is, how would I take these "addresses" and actually pull out the data?

On a related note, I'd also like to know the best way to pull the displayed (from the shell) icon out of a vanilla EXE.

I'm working in C#, but I can work with C or C++ examples just as well.

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

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

发布评论

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

评论(2

断爱 2024-08-03 14:06:10

对于 EXE,您应该调用 SHGetFileInfo API 函数并表明您需要该图标。 此函数将检查提供图标的所有不同方式(在文件中、通过 shell 扩展等)。

对于从第三方库获取的内容,您可以调用 ExtractIconEx API 函数并传递文件名(第一部分)和索引(第二部分)。

With an EXE, you should call the SHGetFileInfo API function and indicate that you want the icon. This function will check all the different ways that an icon can be provided (in the file, through shell extensions, etc, etc).

For what you are getting from the third party library, you can call the ExtractIconEx API function passing the name of the file (the first part) and the index (the second part).

玩物 2024-08-03 14:06:10

如果您使用reflector,您可以准确地看到物品的存储位置。 (如果它是兼容的 dll)。 它过去帮助我获得了嵌入式资源。

If you use reflector you can see exactly where the things are stored. (If its a compatable dll). It's helped me in the past get to emedded resources.

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