2011-07-13 30 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用于执行此操作。

用户有一个完全合理的机制重新排序按钮,你应该让他们这样做,如果他们希望的话。