Antonio Linares wrote:Rafa,
Prueba a usar esta modificaci贸n de IsExeRunning():
HB_FUNC( ISSERVICERUNNIG )
{
HANDLE hMutex = CreateMutex( NULL, FALSE, ( LPTSTR ) hb_parc( 1 ) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );
}
No funciona.
El problema no es crear el servicio, porque si arranco el servicio;
net start test1
si lo vuelvo a intentar, ya el propio Windows da error.
El problema radica que si ahora hago desde la linea de comandos;
test1
Se ejecuta, y lo que estoy buscando es que NO SE EJECUTE si esta ya
corriendo el servicio.
El problema es que no puedo preguntar si esta el servicio corriendo, ya lo he intentado, porque me dice que si;
FUNCTION MAIN()
IF EstaCorriendoelServicio()
quit
ENDIF
Y claro, NUNCA se ejecutar铆a, porque cuando llega a esa linea, ESTA CORRIENDO!! y se cancela el programa.
El problema es que aunque nuestro programa sea un servicio, realmente no lo es... por ello es bastante complicado encontrar donde se puede
buscar los 3 pies al gato.
Vamos, que lo que seria lo m谩s simple , se me esta convirtiendo en toda una odisea.