4

我需要从 .msstyles 文件(Windows XP 视觉样式文件)中提取一些位图,但我不知道从哪里开始。我似乎找不到任何关于如何做到这一点的文档,而且文件格式似乎是二进制的,不容易解析。我已经能够使用以下方法自行提取位图:

IntPtr p = LoadLibrary(UxTheme.ThemeName);
Bitmap bmp = Bitmap.FromResource(p, "BITMAP_NAME");
FreeLibrary(p);

但是,我还需要与位图相关的信息,例如边距大小、间距和每个位图的“图像”数量。有没有人对此有任何经验或我可以使用的任何文档链接?

4

3 回答 3

4

站点声称该文件格式已记录在文档中,但 Microsoft 并未记录。在Wine Crossreference
中也发现了这一点。 希望有帮助!

于 2008-11-15T00:20:03.840 回答
1

如果您想直接从 dll 中获取文件(请记住,msstyles 是具有另一个扩展名的 dll),您可以查看Anolis Project

至于实际解析这些内容,您应该查看有关创建 msstyles 的各种教程,以获取有关该文件中各种文本资源如何工作的信息。

这篇codeproject 文章似乎正是您想要的,其中涉及到一点互操作。存在托管包装器,它看起来相当不错。.Net WindowsForms 还具有内置功能,如果您想要简化只读访问,您可能需要查看 System.Windows.Forms.VisualStyles 命名空间。

于 2008-11-17T11:29:04.440 回答
0

您可以使用7-zip打开msstyles,安装它,然后右键单击msstyles > 7-zip,里面有2个打开,一个作为普通按钮,另一个带有箭头,选择第二个,然后选择“#”

您现在在 msstyles 中,现在右键单击 1..mst > Open inside 您现在在实际主题中,现在只需提取它的资源 msstyles 打开的图像(是西班牙语)

于 2020-11-29T18:31:36.377 回答