有一些免费软件工具(例如,Taskbar Shuffle,XNeat等),它们能够改变任务栏上按钮的顺序,而无需实际关闭或打开任何窗口。不幸的是,它们似乎都不是开源的。
更改任务栏中按钮顺序所需的API调用是什么?
答案 0 :(得分:6)
答案是在调用TB_MOVEBUTTON
时使用SendMessage()
,如the WinAPI documentation here中所述。
SendMessage()
(hWndControl
)的第一个参数需要是对包含任务栏按钮的工具栏的引用。这对于检索来说并不重要,但Chris Clarke的答案中提到的CodeProject entry具有检索此句柄所需的所有代码。
wParam
和lParam
设置为要移动的按钮的按钮ID,以及将其移动到的位置。这些ID是idCommand
结构中代表每个按钮的TBBUTTON
字段;如何检索按钮的这些结构也可以从上面的CodeProject entry。
答案 1 :(得分:1)
Windows API不公开重新排列任务栏按钮的方法这一事实是故意的。没有支持的方法来执行此操作。
请参阅this文章(以及它链接到的文章),了解为什么shell开发人员不公开此功能。
然而,足智多谋的人已经设计了黑客实现这一目标(参见其他答案)。我怀疑这些方法会随着Windows的发展而崩溃(Windows 7,64bit等)。当这些技术停止工作时,不要感到惊讶。