Page 1 of 1
¿Aplicación Externa corriendo? - solucionado
Posted: Sun May 05, 2013 12:39 am
by rolando
Buenas noches,
Perdón por el título del post, pero no sabía como resumir lo que necesito conseguir.
Es que necesito saber, desde mi aplicación(ej. myapp.exe), si otra aplicación externa (ej. appexterna.exe) está siendo ejecutada en ese momento.
Estuve buscando en los manuales de FWH pero no encontré una función para tal fin.
Probé con la que figura (
IsExeRunning( <cExeName> ) --> lRunning), pero no funciona y no sé si porque uso win 7.
¿Existe?, ¿se puede lograr lo que necesito?. Gracias.
Rolando
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 1:10 am
by wmormar
rolando,
Puedes usar la TCapture
Para lo que necesitas está excelente.
En las utilidades debe estar.
Sino con gusto la posteo.
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 1:13 am
by wmormar
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 12:57 pm
by rolando
William,
Gracias por responder.
Bajé la clase y compilé el sample pero, no es lo que busco. Esta clase captura imágenes desde una webcam.
Lo que necesito es saber si una aplicación externa está ejecutándose.
Saludos.
Rolando
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 2:53 pm
by wmormar
Rolando, me confundi.
es esta:
Code: Select all
//----------------------------------------------------------------------------//
// AUTOR.....: Manuel Exp¢sito Su rez Soft 4U '2001 //
// e-Mail....: maex14@dipusevilla.es //
// CLASE.....: TWCapture //
// FECHA MOD.: 18/08/2001 //
// VERSION...: 1.00 //
// PROPOSITO.: Captura una ventana abierta por nuestro programa o por otra //
// aplicacion para poder enviarle mensajes como si fuera una //
// ventana mas de nuestro programa. //
//----------------------------------------------------------------------------//
// DATAS.....: * lCapture tiene un valor logico, .f. si la ventana no se //
// pudo capturar y .t. si si se hizo //
// //
// METODOS...: * New( cTitle ) es el constructor, cTitle es el titulo de una //
// ventana, si se le pasa intentara capturarla y pondra .t. en //
// ::lCapture //
// * WCapture se encarga de buscar la ventana y asignarla a //
// nuestro objeto TWindow. Si la captura podremos interactuar //
// como si fuera una ventana mas de nuestra aplicacion //
// //
// NOTAS.....: TWCapture esta heredada de TWindows por lo que tendremos a //
// nuestra disposicion todas las datas y metodos de esta clase. //
// No distingue entre mayusculas y minuscula pero si se tienen //
// en cuenta los espacios //
//----------------------------------------------------------------------------//
#include "Objects.ch"
//----------------------------------------------------------------------------//
CLASS TWCapture FROM TWindow
DATA lCaptured
METHOD New( cTitle ) CONSTRUCTOR
METHOD WCapture( cTitle )
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( cTitle ) CLASS TWCapture
if( HB_IsString( cTitle ), ::WCapture( cTitle ), ::lCaptured := .f. )
return( Self )
//----------------------------------------------------------------------------//
METHOD WCapture( cTitle ) CLASS TWCapture
local hWnd := FindWindow( 0, cTitle )
::lCaptured := ( hWnd > 0 )
::hWnd := if( ::lCaptured, hWnd, 0 )
return( ::lCaptured )
//----------------------------------------------------------------------------//
Ejemplo:
Code: Select all
//----------------------------------------------------------------------------//
// TWCapture by Manu Exposito
// Demo01 de la clase TWCapture
// Pasando un titulo de ventana
//----------------------------------------------------------------------------//
#define CRLF chr( 13 ) + chr( 10 )
function Main()
local oWnd
local cTitle := space( 40 )
if MsgGet( "Entre titulo de una ventana abierta", "Titulo:", @cTitle ) .and. !empty( cTitle )
oWnd := TWCapture():New( AllTrim( cTitle ) )
Jugar( oWnd )
else
MsgAlert( "No ha elegido ningun titulo de ventana" + CRLF + ;
"Ejecuto el WorPad y capturamos la ventana" )
WinExec( "NotePad.exe Demo01.prg" )
oWnd := TWCapture():New( "demo01 - bloc de notas" )
Jugar( oWnd )
endif
return nil
//----------------------------------------------------------------------------//
static function Jugar( oWnd )
local cTitle := oWnd:cTitle
if oWnd:lCaptured
MsgAlert( "Muy bien, ya lo tenemos" + CRLF + ;
"_ la ventana con titulo: " + cTitle + ;
CRLF + "Ahora vamos a jugar con ella" )
MsgInfo( "La centramos" )
oWnd:Center()
MsgInfo( "Pinto una linea" )
oWnd:Line( 0, 0, 500, 500 )
MsgInfo( "La desplazo a la izquierda" )
oWnd:Move( 0, 0 )
MsgInfo( "Ahora minimizo" )
oWnd:Minimize()
MsgInfo( "Ahora maximizo" )
oWnd:Maximize()
MsgInfo( "La restauro" )
oWnd:Restore()
MsgInfo( "Ahora cambio titulo" )
oWnd:SetText( "TWCapture captura ventanas - by Manu Exposito 2001" )
MsgInfo( "Ahora la oculto" )
oWnd:Hide()
MsgInfo( "Ahora la muestro" )
oWnd:Show()
MsgInfo( "y ahora termino" )
oWnd:End()
else
MsgStop( "No se pudo capturar ninguna ventana" )
oWnd := nil
endif
return( nil )
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 9:16 pm
by rolando
William,
Muchas gracias. Esta clase parece que si va a servir para lo que necesito hacer y se me ocurren otros cuantos usos más.
De nuevo gracias, a ti por buscarla y sugerirla.
Y por supuesto, las gracias también al autor de la misma, Sr. Manuel Expósito.
Saludos.
Rolando