O evento do sistema do Windows na janela activa foi alterado?
a aplicação desktop que estou a desenvolver precisa de saber quais as janelas que estavam activas enquanto a aplicação estava a ser executada. Actualmente executa GetForegroundWindow()
chamada (de user32.dll
) a cada 250 msec. A abordagem não é muito precisa.
22
Author: David Heffernan, 2010-12-10
2 answers
Sim, pode usar a funçãoSetWinEventHook .
hEvent = SetWinEventHook(EVENT_SYSTEM_FOREGROUND ,
EVENT_SYSTEM_FOREGROUND , NULL,
WinEventProcCallback, 0, 0,
WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
.......
VOID CALLBACK WinEventProcCallback ( HWINEVENTHOOK hWinEventHook, DWORD dwEvent, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime)
{
/* your code here */
}
28
Author: DReJ, 2010-12-10 10:08:29
Há a mensagemWM_ ACTIVE , que é enviada para as janelas activadas e desactivadas.
2
Author: Piskvor, 2010-12-10 10:07:32