2011-07-13 32 views
0

我試圖用C++來改變XP快速啓動按鈕的順序,我的代碼如下所示:如何更改XP上快速啓動按鈕的順序?

HWND hDesktop = GetDesktopWindow(); 
HWND hTray = FindWindowEx(hDesktop , 0, _T("Shell_TrayWnd") , NULL); 
HWND hReBar = FindWindowEx(hTray , 0, _T("ReBarWindow32") , NULL); 
HWND hToolbar = FindWindowEx(hReBar , 0, _T("ToolbarWindow32") , NULL); 
int Count = SendMessage(hToolbar, TB_BUTTONCOUNT, 0, 0); 
SendMessage(hToolbar, TB_MOVEBUTTON, Count-1, 0); 

,如果有小於3個按鈕(即是按鈕的數量的defalut限制在快速啓動欄中可見),代碼工作正常,但當有多於3個按鈕時,順序將會改變一段時間,並且在點擊右側的小箭頭按鈕後仍然保持不變3個顯示快速啓動按鈕。 任何人都可以告訴我爲什麼會發生這種情況?以及我如何修復它,使超過3個按鈕的工作?

回答

2

由於快速啓動區域爲用戶所有,並且應用程序預期不會更改用戶背後的訂單,因此沒有官方支持的API用於執行此操作。

用戶有一個完全合理的機制重新排序按鈕,你應該讓他們這樣做,如果他們希望的話。