FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como saber si el programa se esta ejecutando
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Como saber si el programa se esta ejecutando
Posted: Fri Aug 06, 2010 10:07 AM
Hola a todos:

Estoy incorporando el siguiente codigo para poder comprobar si el programa se esta ejecutando y si se trata de ejecutar de nuevo no hacerlo, pero cuando me da la lista no me incluye el programa pero si abro el Administrador de Tareas si esta. Me podriais ayudar.

Un saludo

Carlos


Code (fw): Select all Collapse
#include "FiveWin.ch"

#define GWL_HINSTANCE -6

static aTasks := {}

function Main()

   local aTask

   EnumChildWindows( GetDesktopWindow(), { | hWnd | AddTask( hWnd ) } )

   for each aTask in aTasks
      aTask = aTask[ 1 ] + ", " + aTask[ 2 ]
   next 
      
   MsgList( ASort( aTasks ), "Applications in use" )

return nil

function AddTask( hWnd )

   local cTaskName := GetWindowModuleFileName( hWnd )
   
   if AScan( aTasks, { | aTask | aTask[ 2 ] == cTaskName } ) == 0
      AAdd( aTasks, { GetWindowText( hWnd ), cTaskName } )
   endif
   
return nil     

#pragma BEGINDUMP

#include <windows.h>
#include <psapi.h>
#include <hbapi.h>

HB_FUNC( GETWINDOWMODULEFILENAME )
{
   HWND hWnd = ( HWND ) hb_parnl( 1 );
   UINT processId = 0;
   DWORD dwLength = 1024;
   char buffer[ 1024 ];
   HMODULE hProcess;

   GetWindowThreadProcessId( hWnd, &processId );
   hProcess = OpenProcess( 1040, 0, processId );
   dwLength = GetModuleFileNameEx( hProcess, 0, buffer, dwLength );
   CloseHandle( hProcess );
   
   hb_retclen( buffer, dwLength );
}

#pragma ENDDUMP
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Como saber si el programa se esta ejecutando
Posted: Fri Aug 06, 2010 11:06 AM

if isexerunning( cfilename( hb_argv( 0 ) ) )
msgrun("O sistema já esta sendo executado!!!")
return(.f.)
endif

:D

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: Como saber si el programa se esta ejecutando
Posted: Fri Aug 06, 2010 02:48 PM

Gracias SGS me ha servido mejor y menos lioso que lo anterior.

Por otra parte no se si se puede quitar una ventana que aparece cuando cierro la aplicación diciendo "FyVWin.exe dejo de funcionar" y solo pasa en Vista o 7.

Un saludo

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.

Continue the discussion