更改固定的任务栏图标(Windows 7)
我不想自定义在Windows 7任务栏中显示的图标。 当我的应用程序运行时,我可以通过更改主窗口图标来完成此操作,但是当应用程序被固定时,会显示exe图标。
如何将我的应用程序的任务栏图标设置为与嵌入在exe中的图标不同的图标?
没有尝试过,这个解决方案可能工作,但看起来很脏
编辑:
我们的应用程序编译一次,但取决于配置文件,功能是否启用,所以它是一个产品或另一个。 我们不想为每个产品编译一个exe文件。
上面的解决方案可能无法正常工作,因为我的应用程序的许多实例可以安装在不同的路径中(因此最终会得到相同的exe文件名称,但具有不同的图标!),此注册表项设计不佳还是缺少某些内容?
编辑下面的信息已经过时了; 所有新的Windows 7位现在均可用作托管API,可在此处找到:http://code.msdn.microsoft.com/WindowsAPICodePack
调试大师Sasha Goldshtein在新的Taskbar API上有一系列文章。 你应该看看Overlay Icons和Progress Bars API。
您可以从Microsoft Code的Windows 7 Taskbar Developer Resources下载示例代码。 你要找的是IMClient
示例:
IMClient示例演示了任务栏叠加图标和任务栏进度条如何点亮应用程序的任务栏按钮,而不是依赖额外的对话框或系统通知区域(托盘)中的图标。
我相信这应该可以帮助你实现你想要的。
将应用程序固定到TaskBar时,只需在以下目录中创建一个快捷方式:
C:Users<User Name>AppDataRoamingMicrosoftInternet ExplorerQuick LaunchUser PinnedTaskBar
您应该能够识别快捷方式的位置(即,获取KnownFolders并从那里开始工作,UserAppData应该是唯一的),然后使用P / Invoke(IShellLink),您可以更改快捷方式设置使用的图标。 该机器可能需要重新启动才能生效,但它应该起作用。
如果在按住Shift的同时右键单击固定的应用程序,并选择“属性”,则可以看到快捷方式的“更改图标”按钮。 这基本上是你需要用代码来模拟的。
所有这些事情都可以通过代码完成,但是否认为它们比注册表设置更好取决于您。
您可以使用基于“Windows Vista Bridge”的名为“Windows 7 Bridge”的库来执行此操作。
这些都是围绕所有Vista和Windows 7本机功能的托管包装。
更多信息可以在这里找到
链接地址: http://www.djcxy.com/p/51805.html