2009-04-28 82 views
7

这里有一些免费软件工具(例如Taskbar Shuffle,XNeat等),它们能够改变任务栏上按钮的顺序,而不用真正关闭或打开任何窗口。不幸的是,他们中没有一个似乎是开源的。如何更改任务栏上按钮的顺序?

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

回答

6

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

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

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

1

事实上,Windows API不公开重新排列任务栏按钮的方法是有意的。没有支持的方式来做到这一点。

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

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