如何更改任务栏上按钮的顺序?

时间:2009-04-28 13:17:25

标签: windows winapi button taskbar

有一些免费软件工具(例如,Taskbar Shuffle,XNeat等),它们能够改变任务栏上按钮的顺序,而无需实际关闭或打开任何窗口。不幸的是,它们似乎都不是开源的。

更改任务栏中按钮顺序所需的API调用是什么?

2 个答案:

答案 0 :(得分:6)

答案是在调用TB_MOVEBUTTON时使用SendMessage(),如the WinAPI documentation here中所述。

SendMessage()hWndControl)的第一个参数需要是对包含任务栏按钮的工具栏的引用。这对于检索来说并不重要,但Chris Clarke的答案中提到的CodeProject entry具有检索此句柄所需的所有代码。

需要将

wParamlParam设置为要移动的按钮的按钮ID,以及将其移动到的位置。这些ID是idCommand结构中代表每个按钮的TBBUTTON字段;如何检索按钮的这些结构也可以从上面的CodeProject entry

中获取

答案 1 :(得分:1)

Windows API不公开重新排列任务栏按钮的方法这一事实是故意的。没有支持的方法来执行此操作。

请参阅this文章(以及它链接到的文章),了解为什么shell开发人员不公开此功能。

然而,足智多谋的人已经设计了黑客实现这一目标(参见其他答案)。我怀疑这些方法会随着Windows的发展而崩溃(Windows 7,64bit等)。当这些技术停止工作时,不要感到惊讶。