在任务栏中更改组的图标(Win7)

时间:2014-06-17 21:16:48

标签: winapi windows-7 taskbar

使用LoadImage我更改了组中所有窗口的图标。但是,组图标不会更改。如何将相应的组添加到窗口并设置其图标?

enter image description here

2 个答案:

答案 0 :(得分:1)

组图标来自EXE文件本身(在多个EXE贡献给同一组的情况下,我想任务栏有一些算法来决定从哪个EXE拉出图标)。没有官方API可以更改组图标。你必须manipulate the Taskbar directly,这不是不可能的,但也不是微不足道的。

更新:我刚刚看到以下答案,也许它会对您有所帮助:

https://stackoverflow.com/a/219128/65863

更新:显然上述链接中的注册表值仅适用于将应用固定到任务栏的情况。

答案 1 :(得分:1)

你的问题是:图标确实采用了第一个WINDOW的图标,而不是exe。但是,在设置图标后,您必须右键单击任务栏中的图标,然后将其固定,然后取消固定。在取消固定任务栏图标时,现在将获取第一个Windows图标。

我不知道如何以编程方式执行此操作,也许@RemyLebeau知道。也许setClassLongPtr?不确定。

现在当它被固定时你想让它使用相同的图标,所以设置注册表值就像建议的@RemyLebeau。

此外,我不知道如何解释这个问题,但是取消固定后,如果你打开跳转列表,图标就会恢复到exe的图标。这可以通过固定图标的注册表设置来修复,我不确定。

哇所以Win7任务栏如此调整。

编辑:我尝试设置我的注册表值,图标不起作用。它可能需要做一些事情:我为TaskbarGroupIcon找到的注册表内容都有一个以逗号和数字结尾的数据值(例如,-4中的%SystemRoot%\System32\imageres.dll,-4