2009-04-28 81 views
7

這裏有一些免費軟件工具(例如Taskbar Shuffle,XNeat等),它們能夠改變任務欄上按鈕的順序,而不用真正關閉或打開任何窗口。不幸的是,他們中沒有一個似乎是開源的。如何更改任務欄上按鈕的順序?

更改任務欄中按鈕順序所需的API調用是什麼?

回答

6

答案是在撥打SendMessage()時使用TB_MOVEBUTTON,如the WinAPI documentation here中所述。

SendMessage()hWndControl)的第一個參數需要是對包含任務欄按鈕的工具欄的引用。這是不重要的檢索,但Chris Clarke的答案中提到的CodeProject entry具有檢索該句柄所需的所有代碼。

wParamlParam需要分別設置爲要移動的按鈕的ID和移動到的位置。這些ID是代表每個按鈕的TBBUTTON結構中的idCommand字段;如何檢索按鈕的這些結構也可以從上面的CodeProject entry中獲取。

1

事實上,Windows API不公開重新排列任務欄按鈕的方法是有意的。沒有支持的方式來做到這一點。

請參閱this文章(以及它鏈接到的文章)爲什麼shell開發人員不公開此功能的背後思考。

然而,足智多謀的人已經設計出黑客完成了這個(見其他答案)。我懷疑隨着Windows的發展,這些方法會崩潰(Windows 7,64bit等)。當這些技術停止工作時不要感到驚訝。