C# 从basebrd.dll 中提取位图/Windows 徽标

问题描述 投票:0回答:1

我想提取默认 Windows C:\Windows\Branding\Basebrd asebrd.dll 上存在的位图,以便我可以在图片框或其他东西上使用它。 - 在运行时

可以存档吗?有人这样做吗?

如果我使用 Resource Hacker 或 Resource Explorer 工具加载文件,我会看到资源就在那里,但我不确定如何从 C# 应用程序中引用或提取这些资源。

问候

c# dll resources
1个回答
0
投票

我找到了一种方法,所以我分享解决方案

var ID = 123;
var FilePath = @"C:\Windows\Branding\Basebrd\basebrd.dll";
IntPtr hMod = LoadLibraryEx(FilePath, IntPtr.Zero, 2); //LOAD_LIBRARY_AS_DATAFILE = 2
IntPtr hRes = FindResource(hMod, ID, 2); // RT_BITMAP = 0x00000002;
IntPtr hBitmap = LoadBitmap(hMod, new IntPtr(123));
FreeLibrary(hMod);
Bitmap bmp = Image.FromHbitmap(hBitmap);
bmp.Save(@"C:\1\img2.bmp");
© www.soinside.com 2019 - 2024. All rights reserved.