2009-04-28 40 views
7

Có một vài công cụ phần mềm miễn phí (ví dụ: Taskbar Shuffle, XNeat, v.v.) có khả năng thay đổi thứ tự của các nút trên thanh tác vụ, mà không thực sự đóng hoặc mở bất kỳ cửa sổ nào. Thật không may, không ai trong số họ dường như là mã nguồn mở.Làm cách nào để thay đổi thứ tự các nút trên thanh tác vụ?

Các cuộc gọi API được yêu cầu để thay đổi thứ tự các nút trong thanh tác vụ là gì?

Trả lời

6

Câu trả lời là sử dụng TB_MOVEBUTTON trong cuộc gọi đến SendMessage(), như được mô tả trong the WinAPI documentation here.

Tham số đầu tiên là SendMessage() (hWndControl) cần phải là tham chiếu đến thanh công cụ có chứa các nút trên thanh tác vụ. Đây không phải là tầm thường để truy xuất, nhưng số CodeProject entry được đề cập trong câu trả lời của Chris Clarke có tất cả mã cần thiết để truy lục xử lý này.

wParamlParam cần phải được đặt thành ID nút của nút cần di chuyển và vị trí để di chuyển nó đến tương ứng. Các ID này là trường idCommand trong cấu trúc TBBUTTON đại diện cho mỗi nút; cách lấy các cấu trúc này cho các nút cũng có thể được lấy từ số CodeProject entry ở trên.

1

Thực tế là API Windows không hiển thị các phương pháp để sắp xếp lại các nút trên thanh tác vụ là cố ý. Không có cách nào được hỗ trợ để thực hiện việc này.

Xem this bài viết (và liên kết đến bài viết) để suy nghĩ về lý do tại sao các nhà phát triển trình vỏ không hiển thị chức năng này.

Tuy nhiên, những người có tài nguyên đã phát hiện ra những hacks thực hiện điều này (xem các câu trả lời khác). Tôi nghi ngờ những phương pháp này sẽ sụp đổ khi Windows phát triển (Windows 7, 64bit, v.v ...). Đừng ngạc nhiên khi những kỹ thuật này ngừng hoạt động.

Các vấn đề liên quan