Как изменить порядок кнопок на панели задач? - PullRequest
7 голосов
/ 28 апреля 2009

Существует несколько бесплатных инструментов (например, панель задач Shuffle, XNeat и т. Д.), Которые могут изменять порядок кнопок на панели задач, фактически не закрывая и не открывая никаких окон. К сожалению, ни один из них не является открытым.

Какие вызовы API необходимы для изменения порядка кнопок на панели задач?

Ответы [ 2 ]

6 голосов
/ 28 апреля 2009

Ответ заключается в использовании TB_MOVEBUTTON при вызове SendMessage(), как описано в документации WinAPI здесь .

Первый параметр SendMessage() (hWndControl) должен быть ссылкой на панель инструментов, которая содержит кнопки панели задач. Это нетривиально для извлечения, но запись CodeProject , на которую ссылается ответ Криса Кларка, содержит весь код, необходимый для извлечения этого дескриптора.

wParam и lParam необходимо установить для идентификатора кнопки, на которую нужно переместиться, и на позицию, на которую нужно переместить ее, соответственно. Эти идентификаторы представляют собой поле idCommand в структуре TBBUTTON, которое представляет каждую кнопку; Как получить эти структуры для кнопок, также можно узнать из приведенной выше записи CodeProject .

1 голос
/ 28 апреля 2009

Тот факт, что Windows API не предоставляет методы для изменения порядка кнопок панели задач, является преднамеренным. Там не поддерживается способ сделать это.

См. эту статью (и те, на которые она ссылается), чтобы узнать, почему разработчики оболочки не предоставляют эту функциональность.

Тем не менее, изобретательные люди разработали хаки для достижения этой цели (см. Другие ответы). Я подозреваю, что эти методы будут разваливаться по мере развития Windows (Windows 7, 64-битная и т. Д.). Не удивляйтесь, когда эти методы перестанут работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...