7

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

更改任务栏中按钮的顺序需要哪些 API 调用?

4

2 回答 2

6

答案是TB_MOVEBUTTON在调用中使用SendMessage(),如此处的 WinAPI 文档中所述。

SendMessage()( )的第一个参数hWndControl需要是对包含任务栏按钮的工具栏的引用。这不是微不足道的检索,但克里斯克拉克的答案中提到的CodeProject 条目具有检索此句柄所需的所有代码。

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

于 2009-04-28T16:03:48.777 回答
1

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

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

但是,足智多谋的人已经设计了实现此目的的技巧(请参阅其他答案)。我怀疑这些方法会随着 Windows 的发展(Windows 7、64 位等)而分崩离析。当这些技术停止工作时,不要感到惊讶。

于 2009-04-28T14:08:43.967 回答