Capturar la ventana de encima de todo

Post Reply
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Capturar la ventana de encima de todo

Post by Rafael Clemente »

Si tengo varias aplicaciones abiertas (Word, Excel, Explorer, etc), ¿alguien podría decirme cómo obtener el handle a la de encima de todo? ¿Y a la segunda (o sea, la que esté justo por debajo de ésa?
Gracias
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Resuelto: Este código presenta las ventanas abiertas empezando por la de más arriba...

Code: Select all

hWnd := GETWINDOW(GETDESKTOPWINDOW(), GW_CHILD)
DO WHILE hWnd > 0
   // Para eliminar ventanas ocultas o de sistema
   nT := WndTop(hWnd)  ; nT := IIF(nT == NIL, 0, nT)
   nL := WndLeft(hWnd)  ; nL := IIF(nL == NIL, 0, nL)
   nW := WndWidth(hWnd)
   nH := WndHeight(hWnd)
   cText := GetWindowText(hWnd)
   IF nT > 0 .AND. nL >0 .AND. nW > 0 .AND. nH > 0 .AND. !EMPTY(cText) .AND. IsWindowVisible(hWnd)
      ? cText
   ENDIF
   hWnd := GETWINDOW(hWnd, GW_HWNDNEXT)
ENDDO
Rafael
Post Reply