Pergunta

Existem algumas ferramentas de freeware por aí (por exemplo, shuffle da barra de tarefas, xNeat etc.) que têm a capacidade de alterar a ordem dos botões na barra de tarefas, sem realmente fechar ou abrir qualquer janela. Infelizmente, nenhum deles parece ser de código aberto.

Quais são as chamadas da API necessárias para alterar a ordem dos botões na barra de tarefas?

Foi útil?

Solução

A resposta é usar TB_MOVEBUTTON em uma chamada para SendMessage(), como descrito em A documentação de Winapi aqui.

O primeiro parâmetro para SendMessage() (hWndControl) precisa ser uma referência à barra de ferramentas que contém os botões da barra de tarefas. Isso não é trivial para recuperar, mas o Entrada do CodeProject Referido na resposta de Chris Clarke, tem todo o código necessário para recuperar esse identificador.

wParam e lParam Precisa ser definido para o botão ID do botão para mover e a posição para movê -lo, respectivamente. Esses IDs são os idCommand campo no TBBUTTON estrutura que representa cada botão; Como recuperar essas estruturas para os botões também podem ser retiradas do acima Entrada do CodeProject.

Outras dicas

O fato de a API do Windows não expor os métodos para reorganizar os botões da barra de tarefas é intencional. Não há uma maneira suportada de fazer isso.

Ver isto Artigo (e os que ele vincula) para o pensamento por trás de por que os desenvolvedores da Shell não expõem essa funcionalidade.

No entanto, Pessoas engenhosas criaram hacks para conseguir isso (veja as outras respostas). Eu suspeito que esses métodos desmoronem à medida que o Windows evolui (Windows 7, 64 bits, etc ...). Não se surpreenda quando essas técnicas param de funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top