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