Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Alt选项卡覆盖Win32标识符_C++_Windows_Winapi_Alt Tab - Fatal编程技术网

C++ Alt选项卡覆盖Win32标识符

C++ Alt选项卡覆盖Win32标识符,c++,windows,winapi,alt-tab,C++,Windows,Winapi,Alt Tab,我正在将来自外部传感器(如键盘)的事件映射到键盘快捷键,我希望使用快速切换覆盖窗口(如Alt Tab菜单)切换应用程序,但我希望在选择应用程序之前一直显示切换菜单 基本上,我所做的是: if(notInSwitchMenu) { // Alt-Tab keystroke, but Alt remains pressed : the menu is still visible Press(VK_MENU); Press(VK_TAB); Release(VK_TA

我正在将来自外部传感器(如键盘)的事件映射到键盘快捷键,我希望使用快速切换覆盖窗口(如Alt Tab菜单)切换应用程序,但我希望在选择应用程序之前一直显示切换菜单

基本上,我所做的是:

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-Tab程序列表中。有人知道如何用Win32 API识别Alt-Tab覆盖菜单吗?

当Alt+Tab窗口出现时,
事件系统系统开关开始
事件系统开关结束事件会告诉您消失。

你知道吗,使用
Ctrl+Alt+Tab
一次会迫使列表保持打开状态,直到你选择一个应用程序。
EVENT\u SYSTEM\u SWITCHSTART
/
EVENT\u SYSTEM\u SWITCHEND
事件告诉你
Alt
+
Tab
窗口何时出现和消失。@Raymond Chen回答这个问题。在在你的特殊情况下,你知道当你按下alt键时,只要在你的应用程序仍按住alt键的情况下保留一个标志就可以了。要详细说明,请使用来接收这些事件。谢谢!这正是我想要的!