运行时更改外部exe图标

3

我正在开发一个简单的应用程序,它只需复制另一个现有的可执行文件并更改其图标。这是否可以通过.NET实现?我想问的是更改图标,复制不是问题。

我不知道从哪里开始。我在Google上搜索了一下,但只找到了我不太熟悉的非托管C++代码。

这篇文章与在运行时更改当前应用程序的图标无关,而是关于更改外部应用程序的图标(在Windows资源管理器中可见)。

任何帮助都将不胜感激。

谢谢。

2个回答

7

.NET不支持这种操作。图标存储在.exe文件中未管理的资源中。您可以通过文件+打开+文件打开.exe文件并打开图标节点来查看它们。编号最低的图标是Windows使用的图标。

更新这些资源通常需要重建.exe文件。幸运的是,Windows API支持在运行时更新资源。虽然它有一些限制,但对于图标没有影响。您将需要BeginUpdateResource、UpdateResource和EndUpdateResource。请注意,它们不容易使用,您需要知道图标资源号。您可以访问pinvoke.net以获取所需的声明。


-4
我假设您正在使用Visual Studio/Visual C# Express Edition。
要实现这一点,请尝试转到“项目”>“您的应用程序属性”。在“应用程序”选项卡上,将图标下拉框更改为您喜欢的任何图标。

3
这与问题无关,他试图让自己的程序更改另一个程序的图标,而不是更改自己程序的图标。他在问题中甚至明确表示:“这篇帖子与在运行时更改当前应用程序图标无关,而是关于更改外部应用程序的图标(在Windows资源管理器中可见)”。请修改您的答案以符合主题或将其删除。 - Scott Chamberlain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接