2009-04-28 13 views
7

Es gibt ein paar Freeware-Tools (z. B. Taskbar Shuffle, XNeat usw.), die die Reihenfolge der Schaltflächen in der Taskleiste ändern können, ohne Fenster zu schließen oder zu öffnen. Leider scheint keine von ihnen Open Source zu sein.Wie ändert man die Reihenfolge der Schaltflächen in der Taskleiste?

Welche API-Aufrufe sind erforderlich, um die Reihenfolge der Schaltflächen in der Taskleiste zu ändern?

Antwort

6

Die Antwort ist TB_MOVEBUTTON in einem Anruf zu SendMessage() zu verwenden, wie in the WinAPI documentation here beschrieben. Der erste Parameter SendMessage() (hWndControl) muss ein Verweis auf die Symbolleiste sein, die die Taskleistenschaltflächen enthält. Das ist nicht trivial, um abzurufen, aber das CodeProject entry, auf das in Chris Clarkes Antwort verweist, verfügt über den erforderlichen Code, um dieses Handle abzurufen.

wParam und lParam müssen auf die Schaltfläche ID der zu verschiebenden Schaltfläche bzw. auf die Position, zu der sie verschoben werden soll, festgelegt werden. Diese IDs sind das idCommand Feld in der TBBUTTON Struktur, die jede Schaltfläche darstellt; Wie man diese Strukturen für die Tasten abruft, kann man auch dem obigen CodeProject entry entnehmen.

1

Die Tatsache, dass die Windows-API Methoden zum Neuanordnen von Taskleistenschaltflächen nicht verfügbar macht, ist beabsichtigt. Es gibt keinen unterstützten Weg, dies zu tun.

Siehe this Artikel (und die, die es verknüpft) für den Gedanken dahinter, warum die Shell-Entwickler diese Funktionalität nicht verfügbar machen.

Allerdings haben einfallsreiche Menschen Hacks erfunden, die dies erreichen (siehe die anderen Antworten). Ich vermute, dass diese Methoden auseinander fallen werden, wenn Windows sich weiterentwickelt (Windows 7, 64bit, etc ...). Seien Sie nicht überrascht, wenn diese Techniken nicht mehr funktionieren.

Verwandte Themen