2012-10-12 98 views
5

Estoy mapeando eventos provenientes de un sensor externo (por ejemplo, un teclado) a shorcuts de teclado y me gustaría cambiar aplicaciones usando la ventana de superposición de conmutación rápida (es decir, "Menú Alt-Tab"), pero Quiero seguir mostrando el menú de cambio hasta que se elija una aplicación.Superposición de tabulación Alt Identificador de Win32

Básicamente, lo que estoy haciendo es la siguiente:

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); 
    } 
} 

El Pulsar y soltar simplemente llama SendInput con las propiedades adecuadas.

Mi problema es que no conozco un método robusto para determinar si el usuario se encuentra actualmente en la lista de programas Alt-Tab. ¿Alguien sabe cómo idendificar el menú de superposición Alt-Tab con la API de Win32?

+1

¿Sabía que si utiliza 'Ctrl + Alt + Tab' una vez, la lista permanecerá abierta hasta que elija una aplicación? –

+1

Los eventos 'EVENT_SYSTEM_SWITCHSTART' /' EVENT_SYSTEM_SWITCHEND' indican cuándo aparece y desaparece la ventana 'Alt' +' Tab'. –

+0

@Raymond Chen responden eso como una respuesta. –

Respuesta

6

Los eventos EVENT_SYSTEM_SWITCHSTART/EVENT_SYSTEM_SWITCHEND le dicen cuando aparezca la ventana Alt + Tab y desaparece.

+1

Para más detalles, use [SetWinEventHook] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd373640.aspx) para recibir estos eventos. –

+0

¡Gracias! ¡Eso es exactamente lo que estaba buscando! – lucasg

Cuestiones relacionadas