2012-10-12 13 views
5

Sto mappando eventi provenienti da un sensore esterno (ad esempio una tastiera) a shorcuts da tastiera e vorrei passare da un'applicazione alla finestra di sovrapposizione dell'interruttore veloce (ad esempio "Alt-Tab menu"), ma Voglio continuare a mostrare il menu dell'interruttore finché non viene selezionata un'applicazione.Overlay Alt Tab Identificatore Win32

In sostanza, quello che sto facendo è questo:

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

La stampa e stampa chiama semplicemente SendInput con le giuste proprietà.

Il mio problema è che non conosco un metodo affidabile per determinare se l'utente è attualmente nell'elenco dei programmi Alt-Tab. Qualcuno sa come identificare il menu di sovrapposizione Alt-Tab con l'API Win32?

+1

Sai, che usare 'Ctrl + Alt + Tab' una volta forzerà l'elenco a rimanere aperto finché non sceglierai un'applicazione? –

+1

Gli eventi 'EVENT_SYSTEM_SWITCHSTART' /' EVENT_SYSTEM_SWITCHEND' ti dicono quando appare la finestra 'Alt' +' Tab' e scompare. –

+0

@Raymond Chen risponde come risposta. –

risposta

6

Gli eventi EVENT_SYSTEM_SWITCHSTART/EVENT_SYSTEM_SWITCHEND ti dicono quando viene visualizzata la finestra Alt + Tab e scompare.

+1

Per elaborare, utilizzare [SetWinEventHook] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd373640.aspx) per ricevere questi eventi. –

+0

Grazie! Questo è esattamente quello che stavo cercando! – lucasg

Problemi correlati