有一些免费软件工具(例如,Taskbar Shuffle、XNeat 等)能够更改任务栏上按钮的顺序,而无需实际关闭或打开任何窗口。不幸的是,它们似乎都不是开源的。
更改任务栏中按钮的顺序需要哪些 API 调用?
答案是TB_MOVEBUTTON
在调用中使用SendMessage()
,如此处的 WinAPI 文档中所述。
SendMessage()
( )的第一个参数hWndControl
需要是对包含任务栏按钮的工具栏的引用。这不是微不足道的检索,但克里斯克拉克的答案中提到的CodeProject 条目具有检索此句柄所需的所有代码。
wParam
并且lParam
需要分别设置为要移动的按钮的按钮ID,以及要移动到的位置。这些 ID 是结构中代表每个按钮的idCommand
字段;TBBUTTON
如何检索按钮的这些结构也可以从上面的CodeProject 条目中获取。
Windows API 不公开重新排列任务栏按钮的方法是有意的。没有支持的方法来执行此操作。
请参阅这篇文章(以及它链接到的文章),了解为什么 shell 开发人员不公开此功能背后的想法。
但是,足智多谋的人已经设计了实现此目的的技巧(请参阅其他答案)。我怀疑这些方法会随着 Windows 的发展(Windows 7、64 位等)而分崩离析。当这些技术停止工作时,不要感到惊讶。