在运行时更改外部exe图标

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

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

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

任何帮助,将不胜感激。

谢谢。

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

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

假设您使用的是Visual Studio / Visual C#Express Edition。

为此,请尝试转到Project> Your App Properties。 在“应用程序”选项卡上,将“图标”下拉框更改为您需要的任何图标。