如何在XP上更改快速启动按钮的顺序?

时间:2011-07-13 05:26:06

标签: winapi windows-xp visual-c++

我试图使用C ++更改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个(快速启动栏中可见按钮数量的默认限制),则代码工作正常,但当按钮超过3个时,订单会改变一段时间,并且在点击显示快速启动按钮的3右侧的小箭头按钮后保持不变。 谁能告诉我为什么会这样?以及如何修复它以使3个以上的按钮工作?

1 个答案:

答案 0 :(得分:2)

没有官方支持的API可以执行此操作,因为快速启动区域由用户拥有,应用程序预计不会更改用户背后的顺序。

用户有一个完全合理的机制来重新订购按钮,如果他们愿意,你应该留给他们这样做。