FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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". |
#5
|
|||
|
|||
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. |
#6
|
||||
|
||||
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 .... |
|
|
|