使用Python将重点放在Windows XP中的托盘图标上

时间:2011-06-21 19:29:44

标签: python windows keyboard focus

我是一个使用Windows-XP的键盘爱好者,我想绑定开始 - T 将键盘焦点放在托盘图标上。 (因为它会比开始 - B ,然后许多 Shift - Tab 更好。)

所以我想制作一个将键盘焦点放在托盘图标上的Python程序。我怎么能用Python做到这一点?我对控制Windows的行为知之甚少。

如果有一些现成的程序可以做到这一点,我也很乐意听到这个。

1 个答案:

答案 0 :(得分:1)

我99%确定没有支持的方式来访问托盘通知区域。实际可聚焦的元素是溢出按钮,而不是托盘图标本身 - 并且Windows Shell团队不希望保证此按钮始终是可聚焦的,甚至不希望此按钮在将来的Windows版本中存在。所以没有API可以访问它。这是一种非常黑客的方式,可能会在任何时候停止工作 - 仅供个人使用(在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)

再一次,不要在其他人使用的应用程序中使用win32gui模块是Win32 Extensions

的一部分

对于热键,您可以使用RegisterHotKey但是让Explorer处理它更简单 - 在脚本中添加一个链接到“开始”菜单并为其定义一个热键。