ウィンドウを実際に閉じたり開いたりせずに、タスクバーのボタンの順序を変更できるフリーウェア ツールがいくつかあります (例: Taskbar Shuffle、XNeat など)。残念ながら、それらのどれもオープンソースではないようです.
タスクバーのボタンの順序を変更するために必要な API 呼び出しは何ですか?
答えは、こちらの WinAPI ドキュメントで説明されているように、TB_MOVEBUTTON
への呼び出しで使用することです。SendMessage()
SendMessage()
( )の最初のパラメーターhWndControl
は、タスクバー ボタンを含むツールバーへの参照である必要があります。これを取得するのは簡単ではありませんが、Chris Clarke の回答で参照されているCodeProject エントリには、このハンドルを取得するために必要なすべてのコードが含まれています。
wParam
lParam
それぞれ、移動するボタンのボタン ID と移動先の位置に設定する必要があります。これらの ID は、各ボタンを表す構造idCommand
内のフィールドです。TBBUTTON
ボタンのこれらの構造を取得する方法も、上記のCodeProject エントリから取得できます。
Windows API がタスク バー ボタンを再配置するメソッドを公開していないのは、意図的なものです。これを行う方法はサポートされていません。
シェル開発者がこの機能を公開しない理由については、この記事 (およびそのリンク先) を参照してください。
ただし、機知に富んだ人々は、これを達成するためのハックを考案しました (他の回答を参照)。Windows が進化するにつれて (Windows 7、64 ビットなど)、これらの方法は崩壊するのではないかと思います。これらの手法が機能しなくなっても驚かないでください。