【发布时间】:2011-02-02 02:29:52
【问题描述】:
我正在开发一个名为WeatherBar 的应用程序。它的主要功能基于它与 Windows 7 任务栏的交互——它会根据特定位置的天气状况更改图标。
我在应用程序中使用的图标都存储在已编译的本机资源文件 (.res) 中——我使用它而不是仅用于图标的嵌入式资源清单。默认情况下,我修改主窗体的 Icon 属性以相应地更改图标,只要图标未固定到任务栏,它就可以正常工作。当它被固定时,任务栏中的图标会自动切换到可执行文件的默认图标(资源文件中的索引为 0)。
在做了一些研究之后,我想改变图标的一种方法是改变快捷方式图标(因为所有固定的应用程序实际上都是存储在用户文件夹中的快捷方式)。但它没有用。
我假设我需要更改可执行文件的图标,因此使用UpdateResource,但我对此并不完全确定。我的可执行文件没有经过数字签名,因此修改它应该不是问题。
解决这个问题的方法是什么?
【问题讨论】:
-
@Vivek 这对问题没有帮助,也不是解决方案。
-
您无法使用 UpdateResource,.exe 文件已被锁定。 Vivek 的链接将达到预期效果。 Window API 代码包中有一个很好的包装器:code.msdn.microsoft.com/WindowsAPICodePack
-
我实际上是在使用 Windows API 代码包来管理 JumpLists 和任务栏中的进度,但我认为(目前)无法替换可执行图标。
-
msdn.microsoft.com/en-us/magazine/dd942846.aspx#id0420051 windowsteamblog.com/blogs/developers/archive/2009/07/28/… 查看 APICodePack 中的 OverlayImage。
标签: c# windows windows-7 icons taskbar