更改固定任务栏图标(Windows 7)

Fra*_*ois 26 .net c# icons taskbar windows-7

我不想自定义windows 7任务栏中显示的图标.当我的应用程序运行时,我可以通过更改主窗口图标来实现,但是当应用程序被固定时,会显示exe的图标.

如何将应用程序的任务栏图标设置为与exe中嵌入的图标不同的图标?

没试过,这个解决方案可能有效,但看起来很脏.


编辑:

我们的应用程序编译一次,但根据配置文件,功能是否启用,因此它是一个产品或另一个.我们不想为每个产品编译一个exe.

上面的解决方案可能不起作用,因为我的应用程序的许多实例可以安装在不同的路径中(所以你最终得到相同的exe文件名但不同的图标!),这个注册表项设计不当还是我错过了什么?

Iga*_*nik 23

编辑以下信息有点过时; 所有新的Windows 7位现在都可以作为托管API使用,可在此处获取:http://code.msdn.microsoft.com/WindowsAPICodePack

调试大师Sasha Goldshtein一系列关于新任务栏API 的文章.您应该查看Overlay Icons和Progress Bars API.

您可以从Microsoft Code上的Windows 7任务栏开发人员资源下载示例代码.你要找的是IMClient样品:

IMClient示例演示了任务栏覆盖图标和任务栏进度条如何点亮应用程序的任务栏按钮,而不是依赖于其他对话框或系统通知区域(托盘)中的图标.

替代文字 替代文字 替代文字

我相信这应该可以帮助你实现你想要的.


Dav*_*ier 16

将应用程序固定到TaskBar时,它只是在以下目录中创建一个快捷方式:

C:\Users\<User Name>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
Run Code Online (Sandbox Code Playgroud)

您应该能够识别快捷方式的位置(即,获取KnownFolders并从那里开始工作.UserAppData应该是那个),然后使用P/Invoke(IShellLink),您可以更改快捷方式设置使用的图标.机器可能需要重新启动才能生效,但它应该可以正常工作.

如果在右键单击固定应用程序的同时按住Shift键,然后选择"属性",则可以看到快捷方式的"更改图标"按钮.这基本上是您需要使用代码模拟的内容.

所有这些事情都可以用代码完成,但是你认为它们是否比注册表设置更好取决于你.

  • 通常应将快速启动栏视为应用程序的限制,作为用户首选项的一部分,因此应留给用户管理该区域. (4认同)