【发布时间】:2012-10-12 15:20:01
【问题描述】:
我正在将来自外部传感器(例如键盘)的事件映射到键盘快捷键,我想使用快速切换覆盖窗口(即 Alt-Tab menu"),但我想一直显示切换菜单,直到选择应用程序。
基本上,我在做什么:
if(notInSwitchMenu)
{ // Alt-Tab keystroke, but Alt remains pressed : the menu is still visible
Press(VK_MENU);
Press(VK_TAB);
Release(VK_TAB);
}
else
{
if(event1) //Tab keystroke : next app
{
Press(VK_TAB);
Release(VK_TAB) ;
}
else if(event2) //Shift-Tab keystroke : previous app
{
Press(VK_SHIFT);
Press(VK_TAB);
Release(VK_TAB);
Release(VK_SHIFT)
}
else if(event3) // we get out of the menu : the selected app has the focus.
{
Release(VK_MENU);
}
}
Press and Release 只需使用正确的属性调用 SendInput。
我的问题是我不知道确定用户当前是否在 Alt-Tab 程序列表中的可靠方法。 有人知道如何用 Win32 API 识别 Alt-Tab 覆盖菜单吗?
【问题讨论】:
-
你知道吗,使用
Ctrl+Alt+Tab一次会强制列表保持打开状态,直到你选择一个应用程序? -
EVENT_SYSTEM_SWITCHSTART/EVENT_SYSTEM_SWITCHEND事件告诉您Alt+Tab窗口何时出现和消失。 -
@Raymond Chen 回答这个问题。
-
在您的特定情况下,您知道当您按下 alt 键时,只需在其中保留一个标志以了解您的应用何时仍按住 alt 键。
标签: c++ windows winapi alt-tab