Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2005
Duc Duc is offline
Miembro
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 26-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 26-07-2005
Duc Duc is offline
Miembro
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
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 )

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.
Responder Con Cita
  #4  
Antiguo 27-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 27-07-2005
Duc Duc is offline
Miembro
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 16-04-2006
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
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 ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:54:51.


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
Copyright 1996-2007 Club Delphi