2009-06-09 83 views
26

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

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

没有试过,这solution可能工作,但看起来很脏。


编辑:

我们的应用程序被编译一次,但根据配置文件,功能是启用或不那么它是一个产品或其他。我们不想为每个产品编译一个exe文件。

上面的解决方案可能无法正常工作,因为我的应用程序的很多实例可以安装在不同的路径中(所以最终会得到相同的exe文件名,但不同的图标!),此注册表项设计不佳或缺少某些东西?

+0

我会认为不会支持这个,只是因为如果我固定了一个图标,我会认为这个图标以后不会变成别的东西。我可以理解的叠加层,但不是当点击时变成Firefox图标的IE图标。 – 2009-06-17 20:31:55

+0

看到它:http://stackoverflow.com/questions/1285798/is-it-possible-to-change-a-console-windows-icon-from-net – 2012-09-12 12:46:08

回答

24

EDIT下面的信息是有点陈旧;所有新的Windows 7位是现在可作为管理API,请访问:http://code.msdn.microsoft.com/WindowsAPICodePack

有由调试大师Sasha Goldshtein新的任务栏API一个series of articles。你应该看看Overlay Icons and Progress Bars API

您可以在Microsoft Code上从Windows 7 Taskbar Developer Resources下载示例代码。什么你要找的是IMClient样本:

的IMClient的示例演示 任务栏覆盖图标和任务栏 进度条怎么可以点亮一个 应用程序的任务栏按钮,而不是 依赖于额外的对话框或 的系统通知 区域(托盘)中的图标。

alt text alt text alt text

我相信这将帮助你实现你想要的。

+0

我知道了,我已经在我的应用中使用了叠加图标/ pgbar,但叠加与应用图标不同。 当应用程序被固定并关闭时,覆盖图不显示... – 2009-06-15 09:57:06

0

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

1

您可以通过使用基于“Windows Vista Bridge”的名为“Windows 7 Bridge”的库来实现此目的。

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

更多信息可以发现here

+0

我知道这个库,你能提供更多的信息(样本...)如何实现这一目标? – 2009-06-09 09:59:21

1

但如果你创建一个应用程序,我不知道如果我理解你的问题..

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

我用的东西都相同的图标:P

+0

您对第一部分是正确的。 但是,无论配置文件是否存在,我的主窗口的图标都不一样。我希望这个图标可以保留,甚至当应用程序被固定时,无需为每个配置编译一个exe文件。 – 2009-06-16 07:48:08

0

我现在不能不幸的是测试这个权利,但也许只是建立一个定期的,好老的快捷方式可能会解决这个问题?创建应用程序的快捷方式,更改图标,然后固定快捷方式而不是应用程序本身?

将检查的时候,我可以让旁边访问我的Windows 7计算机...

16

当引脚的应用到任务栏,它只是会在以下目录的快捷方式:

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

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

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

所有这些东西都可以用代码完成,但是否认为它们比注册表设置更好取决于您。

1

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

0

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

-1

如果您想在任务栏中有一个直接导入某处的快捷方式,比如您的“我的文档”目录。简单的修复。 。 。

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

C:\用户[用户] \应用程序数据\漫游\微软\的Internet Explorer \快速启动\用户置顶\任务

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