Antonio, esto;
IsExeRunning( cFileName( HB_ARGV( 0 ) ) )
Funciona perfecto, excepto cuando la aplicacion esta corriendo como servicio, devuelve .F.
Intento que el ejecutable solamente existe UNO corriendo..
IF ( ISEXERUNNING( "VENTAS.EXE" ) )
MsgStop("ESTE PROGRAMA YA SE ENCUENTRA ABIERTO", "ATENçION!")
RETURN( .F. )
ENDIF
karinha wrote:Intente asi,
- Code: Select all Expand view RUN
IF ( ISEXERUNNING( "VENTAS.EXE" ) )
MsgStop("ESTE PROGRAMA YA SE ENCUENTRA ABIERTO", "ATENçION!")
RETURN( .F. )
ENDIF
Saludos.
HB_FUNC( ISSERVICERUNNIG )
{
HANDLE hMutex = CreateMutex( NULL, FALSE, ( LPTSTR ) hb_parc( 1 ) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );
}
Antonio Linares wrote:Rafa,
Prueba a usar esta modificación de IsExeRunning():
- Code: Select all Expand view RUN
HB_FUNC( ISSERVICERUNNIG )
{
HANDLE hMutex = CreateMutex( NULL, FALSE, ( LPTSTR ) hb_parc( 1 ) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );
}
cuatecatl82 wrote:Digo es solo una de las mas simples soluciones..
Ojala y puedas encontrar una idea un poco mas brillante y puedas comentarla...
Saludos...
Antonio Linares wrote:Rafa,
Has probado a usar FindWindow( 0, cTitle ) ?
Si encuentras la ventana anterior entonces el servicio ya estaría funcionando.
IF ISWINDOWVISIBLE( hWnd )
QUIT
ENDIF
karinha wrote:Rafa, podrias testar esto, se funciona?? Por favor.
- Code: Select all Expand view RUN
IF ISWINDOWVISIBLE( hWnd )
QUIT
ENDIF
Gracias,
saludos
Alfredo Arteaga wrote:Bueno, FindWindow() parece funcionar pero si hay una MDIChild maximizada permite abrir nuevamente la aplicación lo mismo sucede con TWCapture().
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Antonio Linares and 59 guests