FUNCTION ListApp
*--------------------------------------------
* Nuestra información de las aplicaciones que
* estan corriendo en Windows
* USO: ListApp()
*-----------------------------------------------
LOCAL laApp, lnHandle, lnCount, lcTitle, lnI, lnHFox
DIMENSION laApp[1]
lnHFox=0
DECLARE INTEGER FindWindow ;
IN win32api ;
INTEGER nullpointer, ;
STRING cwindow_name
DECLARE INTEGER GetWindow ;
IN win32api ;
INTEGER ncurr_window_handle, ;
INTEGER ndirection
DECLARE INTEGER GetWindowText ;
IN win32api ;
INTEGER n_win_handle, ;
STRING @ cwindow_title, ;
INTEGER ntitle_length
lnHFox = FindWindow(0,_SCREEN.CAPTION)
lnHandle = lnHFox && GetWindow(lnHFox,0)
lnCount = 0
DO WHILE lnHandle > 0
lcTitle=SPACE(255)
lnI=GetWindowText(lnHandle, @lcTitle,LEN(lcTitle))
IF lnI>0
lcTitle=STRTRAN(TRIM(lcTitle),CHR(0),"")
ELSE
lcTitle=""
ENDIF
IF lnHandle > 0 .AND. !EMPTY(lcTitle)
lnCount=lnCount+1
DIMENSION laApp(lnCount)
laApp[lnCount]=lcTitle
ENDIF
lnHandle = GetWindow(lnHandle,2)
ENDDO
IF ALEN(laApp,1)>0
lcString = "Las siguientes aplicaciones estan ejecutandose:" + CHR(13) + CHR(13)
FOR i=1 TO ALEN(laApp,1)
lcString = lcString + laApp[i]+CHR(13)
NEXT
ELSE
lcString = "No hay aplicaciones ejecutandose"
ENDIF
=MESSAGEBOX(lcString, "Lista de aplicaciones")
RETURN ""
ENDFUNC