在运行时更改外部exe图标

时间:2010-10-19 19:30:41

标签: c# .net

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

我没有关于如何以及从何处开始的线索。我在Google上搜索过,但发现只有我不太熟悉的非托管C ++代码。

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

任何帮助都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:7)

.NET不支持这一点。该图标存储在嵌入在.exe中的非托管资源中。您可以使用File + Open + File查看它们,选择.exe并打开Icons节点。编号最小的图标是Windows使用的图标。

更新这些资源通常需要重建.exe。幸运的是,Windows API支持即时更新资源。它有限制,但不应该影响你的图标。您将需要BeginUpdateResource,UpdateResource和EndUpdateResource。请注意,它们易于使用,您需要知道图标资源编号。访问pinvoke.net获取您需要的声明。

答案 1 :(得分:-3)

假设您正在使用Visual Studio / Visual C#Express Edition。

要执行此操作,请尝试转到Project>您的应用属性。在“应用程序”选项卡上,将“图标”下拉框更改为您想要的任何图标。