這裏有一些免費軟件工具(例如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等)。當這些技術停止工作時不要感到驚訝。