Bárbaro, en mi caso encontré la solución con este código, lo q me interesó es q me deja los nombre de de todas las aplicaciones activas en un cursor, entonces, trabajo con filtros utilizando comodines q me permiten saber si la aplicación está activa con solo indicar parte del nombre de la misma.
******************************************************************* #DEFINE GW_HWNDNEXT 2 #DEFINE GW_CHILD 5 #DEFINE GWL_STYLE -16 #DEFINE WS_VISIBLE 0x10000000 #DEFINE WS_POPUP 0x80000000 DECLARE LONG GetWindow IN WIN32API LONG HWND, LONG uCmd DECLARE LONG GetWindowText IN WIN32API LONG HWND, STRING @lpString, LONG nMaxCount DECLARE INTEGER GetDesktopWindow IN Win32API DECLARE LONG GetWindowLong IN WIN32API LONG HWND, LONG nIndex DECLARE INTEGER IsIconic IN user32 INTEGER HWND CREATE CURSOR crsWindows ( ; HWND I, WindTitle C(100),isIconic L) lhWnd = GetDesktopWindow() lhWnd = GetWindow(lhWnd, GW_CHILD) DO WHILE lhWnd > 0 m.WindTitle = GetTitle(lhWnd) IF NOT EMPTY(m.WindTitle) m.hwnd = lhWnd m.Style = GetWindowLong(lhWnd, GWL_STYLE) m.hex = TRANSFORM(m.Style, ";@0") m.isiconic = IIF(IsIconic(lhWnd)=0,.F.,.T.) IF BITAND(m.Style, WS_VISIBLE) > 0 ; AND BITAND(m.Style, WS_POPUP) = 0 INSERT INTO crsWindows FROM MEMVAR ENDIF ENDIF lhWnd = GetWindow(lhWnd, GW_HWNDNEXT ) ENDDO SELECT crsWindows LOCATE BROWSE NOWAIT RETURN FUNCTION GetTitle(lhWnd) LOCAL lcTitle lcTitle = SPACE(512) lnTitle = GetWindowText(lhWnd , @lcTitle, 256) IF lnTitle > 0 lcTitle = LEFT(lcTitle, lnTitle ) ELSE lcTitle = "" ENDIF RETURN lcTitle ENDFUNC ******************************************************************* From: Alberto Mendez Sent: Thursday, May 12, 2011 8:59 AM To: GUFA List Member Subject: [GUFA] Saber si una aplicacion cualquiera se esta ejecutando. Se hace con api.... Le pasas el caption de la ventana y listo. Sino podes mandarla a una tabla y monitoriar las aplicaciones. Si te sirve... podes hacer un KILL con el handle... es muy util para matar aplicaciones. Saludos Alberto Mendez. lparameters tcCaption local lnhWnd, ; llReturn, ; lnProcessID, ; lnHandle * Declare the Win32API functions we need. #define WM_DESTROY 0x0002 declare integer FindWindow in Win32API ; string @cClassName, string @cWindowName declare Sleep in Win32API ; integer nMilliseconds * Get a handle to the window by its caption. lnhWnd = FindWindow(0, tcCaption) llReturn = lnhWnd != 0 RETURN llReturn -------------------------------------------------------------------------------- De: GUFA@mug.org.ar [mailto:GUFA@mug.org.ar] En nombre de Santos Victor Enviado el: miércoles, 11 de mayo de 2011 18:37 Para: GUFA List Member Asunto: [GUFA] Saber si una aplicacion cualquiera se esta ejecutando. Le sumo una incógnita a la pregunta de Mario, se puede preguntar por el nombre de una aplicación utilizando comodines, por ej "Nombre Aplicación - ????????" donde los signos son variables. O la otra siria si hay alguna función para obtener un listado de aplicaciones activas en el equipo From: francisco prieto Sent: Wednesday, May 11, 2011 6:24 PM To: GUFA List Member Subject: [GUFA] Saber si una aplicacion cualquiera se esta ejecutando. Mario, Fijate si esto te sirve. http://www.lawebdelprogramador.com/foros/FoxPro_Visual_FoxPro/1102249-Saber_si_un_programa_se_esta_ejecutando.html# Saludos, Pancho Cordoba El 11 de mayo de 2011 18:06, Mario Munuce Furze <mun...@gmail.com> escribió: Hola Zorros! Necesito saber si una aplicación que puede no ser VFP, esta ejecutándose. Hace tiempo a lo lejos tenía una que me pasó un colistero, pero no la encuentro por ningún lado. Alguno se apiada y me manda una? Debería poderla invocar desde un programa VFP. Gracias por adelantado. Saludos, m.