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

Ram*_*hum 6 python windows keyboard focus

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

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

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

Wla*_*ant 1

我 99% 确信没有受支持的方式来访问托盘通知区域。实际上可聚焦的元素是溢出按钮,而不是托盘图标本身 - Windows Shell 团队不希望保证此按钮始终可聚焦,甚至不保证此按钮将存在于未来的 Windows 版本中。所以没有API可以访问它。这是一种极其 hacky 的方法,可能随时停止工作 -仅供个人使用(在 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)
Run Code Online (Sandbox Code Playgroud)

再次强调,不要在其他人会使用的应用程序中使用它模块是Win32 扩展win32gui的一部分。

对于热键,您可以使用RegisterHotKey,但让资源管理器处理应该更简单 - 将脚本的链接添加到“开始”菜单并为其定义热键。