2011-06-21 51 views
6

Tôi là người dùng bàn phím sử dụng Windows XP và tôi muốn liên kết Bắt đầu - T để đặt tiêu điểm bàn phím vào biểu tượng khay. (Bởi vì nó sẽ có rất nhiều đẹp hơn Bắt đầu - B và sau đó nhiều phím Shift -. Tab s)Đặt trọng tâm vào biểu tượng khay trong Windows XP bằng cách sử dụng Python

Vì vậy, tôi muốn làm một chương trình Python mà đặt bàn phím tập trung vào các biểu tượng khay. Làm thế nào tôi có thể làm điều này từ Python? Tôi biết rất ít về việc kiểm soát hành vi của Windows.

Nếu có một số chương trình sẵn sàng thực hiện việc này, tôi cũng rất vui khi biết điều đó.

Trả lời

1

Tôi đảm bảo 99% rằng không có cách nào được hỗ trợ để truy cập vào khu vực thông báo khay. Phần tử thực sự có thể lấy nét là nút tràn, không phải biểu tượng khay - và nhóm Windows Shell không muốn đảm bảo rằng nút này sẽ luôn được lấy nét hoặc thậm chí nút này sẽ tồn tại trong các phiên bản Windows trong tương lai. Vì vậy, không có API để truy cập nó. Đây là một cách cực kỳ hacky để làm điều đó, có thể ngừng làm việc bất cứ lúc nào - cho sử dụng cá nhân chỉ (thử nghiệm trên Windows 7):

import win32gui 
import win32con 
taskbar = win32gui.FindWindow("Shell_TrayWnd", None) 
trayArea = win32gui.FindWindowEx(taskbar, None, "TrayNotifyWnd", None) 
win32gui.SetForegroundWindow(taskbar) 
win32gui.SendMessage(trayArea, win32con.WM_SETFOCUS, 0, 0) 

Một lần nữa, không sử dụng nó trong một ứng dụng khác mọi người sẽ sử dụng. Mô-đun win32gui là một phần của Win32 Extensions.

Đối với phím nóng bạn có thể sử dụng RegisterHotKey nhưng sẽ đơn giản hơn nếu để Explorer xử lý - thêm liên kết vào tập lệnh của bạn vào menu Bắt đầu và xác định phím nóng cho nó.

+0

Nút "tràn" là gì? –

+0

Tập lệnh có vẻ hoạt động, nhưng trình thám hiểm (ít nhất là trên XP) không thể liên kết với Bắt đầu - T. Tôi không sử dụng C# để RegisterHotKey không giúp đỡ. Có tiện ích nào để ràng buộc phím tắt không? –

+0

Được rồi, tôi đã sử dụng AutoHotKey để gắn kết và nó hoạt động! –

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