2009-04-28 7 views
7

창을 닫거나 열지 않고도 작업 표시 줄의 버튼 순서를 변경할 수있는 몇 가지 프리웨어 도구 (예 : 작업 표시 줄 셔플, XNeat 등)가 있습니다. 불행히도 이들 중 누구도 오픈 소스로 보이지 않습니다.작업 표시 줄의 단추 순서를 변경하는 방법은 무엇입니까?

작업 표시 줄의 단추 순서를 변경하는 데 필요한 API 호출은 무엇입니까?

답변

6

the WinAPI documentation here에 설명 된대로 대답은 SendMessage()에 대한 호출에서 TB_MOVEBUTTON을 사용하는 것입니다.

SendMessage() (hWndControl)의 첫 번째 매개 변수는 작업 표시 줄 단추가있는 도구 모음에 대한 참조 여야합니다. 검색하는 것은 간단하지만 Chris Clarke의 답변에 언급 된 CodeProject entry에는이 핸들을 검색하는 데 필요한 모든 코드가 있습니다.

wParamlParam은 이동하려는 버튼의 버튼 ID와 이동 위치로 각각 설정해야합니다. 이 ID는 각 버튼을 나타내는 TBBUTTON 구조의 idCommand 필드입니다. 단추에 대한 이러한 구조를 검색하는 방법은 위의 CodeProject entry에서도 가져올 수 있습니다.

1

Windows API가 작업 표시 줄 단추를 다시 정렬하는 메서드를 표시하지 않는다는 사실은 의도적 인 것입니다. 이를 수행 할 수있는 지원 방법이 없습니다.

셸 개발자가이 기능을 노출하지 않는 이유에 대한 생각을 보려면 this 문서 (및이 문서가 링크 된 문서)를 참조하십시오.

그러나, 수완이 많은 사람들은 해킹을 고안하여이를 수행합니다 (다른 답변 참조). Windows가 진화함에 따라 이러한 방법이 차별화 될 것으로 판단됩니다 (Windows 7, 64 비트 등). 이러한 기술이 작동을 멈추었을 때 놀라지 마십시오.