¿Aplicación Externa corriendo? - solucionado

Post Reply
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

¿Aplicación Externa corriendo? - solucionado

Post 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 :D
Last edited by rolando on Sun May 05, 2013 9:50 pm, edited 1 time in total.
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: ¿Aplicación Externa corriendo?

Post by wmormar »

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
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: ¿Aplicación Externa corriendo?

Post by wmormar »

rolando,

TE ahorre la busqueda, aqui está

http://www.fivetechsoft.com/files/utili ... apture.zip
William, Morales
Saludos

méxico.sureste
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: ¿Aplicación Externa corriendo?

Post 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 :D
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: ¿Aplicación Externa corriendo?

Post 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 )

 
William, Morales
Saludos

méxico.sureste
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: ¿Aplicación Externa corriendo?

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