hola..
Ha ok, entiendo... a mi me pasa lo mismo....
Los amigos del foro nos mandaron este codigo para no abrir varias veces el EXE...
Code: Select all
IF IsExeRunning( cFileNoPath( HB_ArgV( 0 ) ) ) // Sirve para verificar si ya se ejecuto el Exe...
MsgBox( "El programa " + APP_TITLE + " ya esta siendo ejecutado!" )
hWnd := FindWindow( APP_TITLE )
IF hWnd > 0
IF IsIconic( hWnd )
Restore( hWnd )
ELSE
SetForeGroundWindow( hWnd )
ENDIF
ELSE
* MsgStop( "No es possible encontrar el programa !", "Error", , .f. )
ENDIF
ELSE
//EJECUTA EL EXE
ENDIF
Y al final del programa ponemos...
Code: Select all
#pragma BEGINDUMP
#define HB_OS_WIN_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"
HB_FUNC( ISICONIC )
{
hb_retl( IsIconic( ( HWND ) hb_parnl( 1 ) ) );
}
HB_FUNC ( FINDWINDOW )
{
hb_retnl( ( LONG ) FindWindow( 0, hb_parc( 1 ) ) );
}
HB_FUNC( ISEXERUNNING ) // ( cExeNameCaseSensitive ) --> lResult
{
HANDLE hMutex = CreateMutex( NULL, TRUE, ( LPTSTR ) hb_parc(1) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );
}
#pragma ENDDUMP
Espero te ayude mientras vemos que pasa con SET MULTIPLE OFF WARNING...