让我们考虑以下场景:在我的台式机上,我并排打开了两个应用程序,一个浏览器和一个文本编辑器(每个应用程序的显示屏大小为一半)。
如何在这两个应用程序之间切换,但不使用 alt-tab 或 win-tab 或鼠标点击?
如果 Windows XP/Vista 或 7 上没有默认构建,我该如何使用 C++ 以编程方式执行此操作?例如,按 alt+l(或 alt+1)可激活左侧窗口,按 alt+r(alt+2)可激活右侧窗口。
谢谢
答案1
创建一个 AutoHotKey 脚本来获取这些键盘快捷键并激活您想要的程序。
答案2
如果你有这些窗口的句柄,你可以使用SetForegroundWindow
。
如果你知道标题,你可以获得窗口句柄FindWindow
。本文解释了如果您部分知道标题(不完全匹配)则如何获取窗口句柄,尽管我从未尝试过。
对于你的热键,请查看SetWindowsHookEx
以WH_KEYBOARD
钩子类型为例。你将制作一个KeyboardProc
,Windows 将在按键时调用它。在这里,您可以捕获特定的按键组合并激活某些窗口。
也就是说,正如其他答案中概述的那样,Windows 为您提供了热键。
答案3
在 Windows 7 上,您可以通过按 Windows+(1..0) 切换到任务栏上前十个项目中的任何一个(无论是否正在运行)。您可以拖动任务栏项目来更改顺序。
答案4
使用此 AutoHotKey 脚本:
~LAlt & Tab::Send ^#{Tab}