Alt Tab覆盖Win32标识符

时间:2012-10-12 15:20:02

标签: c++ windows winapi alt-tab

我将来自外部传感器(例如键盘)的事件映射到键盘快捷键,我想使用快速切换窗口切换应用程序(即 Alt - Tab < / kbd> 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叠加菜单?

1 个答案:

答案 0 :(得分:6)

当{kbd> Alt + 标签窗口出现并消失时,EVENT_SYSTEM_SWITCHSTART / EVENT_SYSTEM_SWITCHEND事件会告诉您。