FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ¿Aplicación Externa corriendo? - solucionado
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
¿Aplicación Externa corriendo? - solucionado
Posted: Sun May 05, 2013 12:39 AM
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 :-)
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 01:10 AM

rolando,

Puedes usar la TCapture

Para lo que necesitas está excelente.

En las utilidades debe estar.

Sino con gusto la posteo.

William, Morales

Saludos



méxico.sureste
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 01:13 AM

rolando,

TE ahorre la busqueda, aqui está

http://www.fivetechsoft.com/files/utili ... apture.zip

William, Morales

Saludos



méxico.sureste
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 12:57 PM

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 :D

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 02:53 PM
Rolando, me confundi.

es esta:

Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
//  AUTOR.....: Manuel Exp¢sito Su rez    Soft 4U '2001                       //
//  e-Mail....: <!-- e --><a href="mailto:maex14@dipusevilla.es">maex14@dipusevilla.es</a><!-- e -->                                         //
//  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 (fw): Select all Collapse
//----------------------------------------------------------------------------//
// 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 + ;
                      "Hemos capturado 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 )
William, Morales

Saludos



méxico.sureste
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: ¿Aplicación Externa corriendo?
Posted: Sun May 05, 2013 09:16 PM

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 :D

Continue the discussion