Вопрос

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

Какие вызовы API требуются для изменения порядка расположения кнопок на панели задач?

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top