Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ejecutar antes de login (https://www.clubdelphi.com/foros/showthread.php?t=23706)

Duc 26-07-2005 10:23:44

Ejecutar antes de login
 
Hola a todos,

tengo que ejecutar un programa en un servidor, pero quiero que se ejecute al encender el servidor, no al iniciar una sesión de usuario. Por el foro he encontrado que se puede hacer desde "HKEY_LOCAL_MACHINE\Software\Microsoft
\Windows\Currentversion\RunServices" en el registro de windows, y entonces se ejecuta como servicio antes del login. El problema es que en mi sistema operativo no lo encuentro en el regedit.
Uso Windows 2000 Server.

Gracias.

dec 26-07-2005 12:31:54

Hola,

Creo que en este Hilo se tratan cosas que pueden interesarte para conseguir tu objetivo. Por otro lado buscando en estos Foros por palabras clave como "inicio sesión" encontrarás Hilos también probablemente de tu interés.

Duc 26-07-2005 19:42:37

El servicio se para
 
Gracias dec,

finalmenté he estado buscando mucho por los foros y he estado probando. He optado por hacer un servicio (Service application).

ahora tengo otro problema. Una vez creado el servicio y instalado (servicio.exe /INSTALL) voy al gestor de servicios de windows (services.msc) y veo que está detenido; entonces pienso que es un problema de configurar el StartType del servicio, pero si inicio manualmente el servicio desde el gestor de servicios de windows me sale una ProgressBar y cuando termina me dice que el servicio se ha encendido, pero que se ha vuelto a parar porque no tenia nada que hacer.
El mensaje es exactamente este:
"Servicios.
El servicio {nombre de servicio} se inició en Equipo local y después se detuvo. Algunos servicios se detienen automáticamente si no tienen nada que hacer, por ejemplo, el servicio Alertas y registros de rendimiento"
o sea, un rollo.

lo que pasa es que mi servicio sí tiene algo que hacer, ya que activo un timer que debería hacer beep cada segundo (por supuesto el objetivo del servicio no es éste, sólo son pruebas :D)

el timer lo creo en el evento OnCreate del servicio, y lo activo en el evento OnStart del mismo.
Uso Delphi7 si puede ayudar.

muchas gracias por adelantado.

dec 27-07-2005 14:18:08

Hola,

No he tocado demasiado las aplicaciones de ese tipo, empero, ayer noche haciendo algunas pruebas me sucedía exactamente lo mismo que a ti, porque, evidentemente, algo estaba pasando por alto...

Entonces revisé la ayuda de Delphi, concretamente, la de la clase "TService" y en ella puede encontrarse un "ejemplo de uso" de un Servicio de Windows, en donde se ve (aunque no lo llegué a comprobar) por dónde van los tiros.

Como lo que te dijera iría errado muy probablemente te remito también a ti a la ayuda susomentada, puesto que creo que en ella encontrarás la solución a lo que comentas: fíjate en el ejemplo en cómo se hace uso de un "bucle While" apoyándose en cierta propiedad de la clase "TService" de nombre "Terminated".

Duc 27-07-2005 18:32:21

por fin
 
muchas gracias dec!

yo tambien miré la ayuda de TService y vi lo mismo, pero no pasaba nada nuevo. Resulta que mi código generava un error en tiempo de ejecución, y esto es lo que hacía que se parara.

gracias de nuevo.

cacu 16-04-2006 04:28:24

Servicios
 
Hola , mira yo soy nuevo en esto de los servicios con delphi, realiza una prueba de un servicio que guarda relacion con la comunicacion de socket(indy), bueno el tema es que me tope con algo similar , que el servicio se paraba por falta de actividad.Lo que hice fue lo siguiente(espero que te serva de algo)..

procedure TService1.ServiceExecute(Sender: TService);
begin
IdipWatch1.Active:=true;

while IdipWatch1.LocalIP = '127.0.0.1' do begin
end;
with IdTCPServer1 do begin
bindings.Clear;
bindings.Add;
bindings.Items[0].IP:=IdipWatch1.LocalIP;
bindings.Items[0].Port:=210;
active:=true;
end;
while not Terminated do begin
ServiceThread.ProcessRequests(True);
end;

end;


Saludos ....


La franja horaria es GMT +2. Ahora son las 00:01:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi