如何在我的应用程序中包含无法更改的图像?

问题描述:

我在资源文件的应用程序中使用了许多图像。如何在我的应用程序中包含无法更改的图像?

问题是在这里,我的应用程序的其他用户,他们可以通过替换和重命名他们将我的位图更改为他们自己的位图吗?!

例如我的标志尺寸为250x120将出现在启动画面上。

是否需要将logo.png放在我的exe文件附近?

如果是的话,用户可以替换另一个文件作为名称logo.png附近我的exe文件显示自己的文件?

避免这种坏事的方法是什么?

+0

如果放在距离不超过42厘米的地方,可能会很好;-) – 2011-05-27 21:29:54

+0

你在开玩笑吗?我对此很认真。如果你帮我,我会很高兴。 – 2011-05-27 21:30:57

+1

他们需要做新生妈妈的方式。 – 2011-05-27 21:31:40

您应该将任何图形保存在资源文件中,而不是作为单独的文件存在于您的应用程序中。

This link可能会有所帮助。

每有响应:

有很多方法可以做到这一点

  1. ImageList控制:添加您的图标/图像,图像列表,你可以在运行时访问它们

  2. 托管资源:右键单击您的项目名称,然后从菜单中选择属性,选择属性,选择资源选项卡,然后将图像或图标添加为现有项目。现在您可以访问图标或图像E从资源 昏暗的IMG作为位图= My.Resources.YourResourcesNameWithoutExtension 昏暗Ic的作为图标= My.Resources.YourResourcesNameWithoutExtension

  3. 嵌入式资源:添加任何文件在Windows嵌入式资源构成的应用程序,添加文件使用Project |进行项目添加现有项目或在解决方案资源管理器中右键单击项目名称,然后单击添加现有项目。然后在解决方案资源管理器中选择该文件,转到属性窗口,并将其Build Action属性设置为Embedded Resource。当您构建项目时,该文件将嵌入您编译的可执行文件中。
+0

所以他们不能改变他们是吗?并没有资源编辑器? – 2011-05-27 21:33:55

+0

正确,它与您的exe编译。请参阅上面的链接。 – 2011-05-27 21:35:26

+0

这并不意味着它们不能被改变,它只是一些更多的步骤... – Bobby 2011-09-30 07:26:59

如果该文件已被编译为资源,它将被嵌入到您的可执行文件中。其他人在可执行文件附近放置相同名称的文件不会产生任何影响,因为它已经被编译。

黑客仍然可以编辑您的可执行文件中的资源,如果他们真的打算更换您的徽标,但它不会意外发生。

我不会称之为“黑客”来简单地替换一个明显的文件。无论如何,你可以通过多种方式来实现,但最难改变的是嵌入式资源。见本网站#3:http://www.progware.org/Blog/post/Image-Resources-in-WinForms-and-WPF.aspx。请注意,您目前正在做#2。

+0

你当然可以使事情比嵌入式资源更难 - 但超越这一点的任何事情都只是与黑客进入一场军备竞赛,因为收益不大(谁在乎他们是否替换了位图?) – bdonlan 2011-05-27 21:38:38

+0

@bdonlan:是的,我应该澄清它并不是最难的。这是在应用程序中包含图像的标准方式中最难的。您可以添加加密,汇编签名,混淆等,但没有多大意义。 – 2011-05-27 21:43:43