Я отображаю события, поступающие от внешнего датчика (например, клавиатуры), на сочетания клавиш, и я хотел бы переключать приложения с помощью окна наложения быстрого переключения (т.е. Alt—табуляция меню «), но я хочу продолжать показывать меню переключателей до тех пор, пока не будет выбрано приложение.
В основном то, что я делаю, это:
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);
}
}
Пресс и релиз просто вызывают SendInput с правильными свойствами.
Моя проблема в том, что я не знаю надежного метода, чтобы определить, находится ли пользователь в данный момент в Alt—табуляция список программ. Кто-нибудь знает, как определить оверлейное меню Alt-Tab с Win32 API?
EVENT_SYSTEM_SWITCHSTART
/EVENT_SYSTEM_SWITCHEND
события говорят вам, когда Alt+табуляция окно появляется и исчезает.
Других решений пока нет …