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

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

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

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


编辑:

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

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

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

调试大师Sasha Goldshtein在新任务栏API 上发表了一系列文章 。 您应该看一下Overlay Icons和Progress Bars API 。

您可以从Microsoft Code上的Windows 7任务栏开发人员资源中下载示例代码。 您正在寻找的是IMClient示例:

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

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

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

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

 C:\Users\\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 

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

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

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

您可以使用基于“Windows Vista Bridge”的名为“Windows 7 Bridge”的库来执行此操作。

这些是围绕所有Vista和Windows 7本机function的托管包装器。

更多信息可以在这里找到

我不知道我是否理解你的问题但是……

如果您创建一个应用程序并放置主窗口的图标属性,该图标也将出现在任务栏中。 但是,如果你将它固定到任务栏,那个图标会消失。 我对吗? 如果是这样,请转到项目属性,然后在应用程序选项卡中,为exe添加所需的图标。 现在,您将在固定时在任务栏中看到该图标。

我对两件事使用相同的图标:P

据我所知,由于某种原因,您无法更改已固定到任务栏的程序的图标。 要做到这一点,只需取消固定程序,在开始菜单中找到它,右键单击 – 属性 – 更改图标。 然后将其重新固定到任务栏,它将有新图标!

看看这个博客 。 他做了一系列有关Windows 7任务栏编程的博客文章,所以也许这会指出你正确的方向。

不幸的是,我现在无法对此进行测试,但也许只是创建一个常规的,旧的快捷方式可能会解决问题? 创建应用程序的快捷方式,更改图标,然后固定快捷方式而不是应用程序本身?

将检查我何时可以访问我的Windows 7机器…

右键单击固定图标,在弹出窗口中看到程序标题,再次右键单击并转到属性。 在那里,您可以通过单击“更改图标”按钮来更改图标。 对我来说,需要重新启动才能完成更改。

如果您希望在任务栏中有一个直接进入某个有用位置的快捷方式,例如“我的文档”目录。 简单的解决方案。 。 。

将文件夹拖放到任务栏(创建图像的快捷方式)。 导航到放置快捷方式的目录,右键单击快捷方式并选择“属性”以更改目标。 选择“常规”选项卡以更改快捷方式的名称。 快捷方式放在这里:

C:\ Users [user] \ AppData \ Roaming \ Microsoft \ Internet Explorer \ Quick Launch \ User Pinned \ TaskBar

您可以导航到此目录并编辑“图像”快捷方式的属性。