Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2006
Alfers Alfers is offline
Registrado
 
Registrado: ene 2006
Posts: 1
Poder: 0
Alfers Va por buen camino
Reiniciar servicio

Hola que tal, estoy necesitando reiniciar un servicio de windows, en realidad lo que tenemos es un programa del cual no tenemos el codigo fuente, este programa que corre como servicio (lo hacemos correr como servicio para evitar el error entre el teclado y la silla) despues de un tiempo en funcionamiento genera un error de desbordamiento, lo que encontramos es que seguramente esta saturando una variable, entonces lo que hacemos es reiniciar el servicio, lo que estoy buscando es que este servicio se reinicie en forma automatica cada 6Hs, alguien sabe si existe alguna forma de lograr esto?
Responder Con Cita
  #2  
Antiguo 23-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Podrías simplemente agregar una tarea programada a Windows que reinicie el servicio, por ejemplo con un archivo bat:

reiniciar.bat
Código:
net stop servicio
net start servicio
// Saludos
Responder Con Cita
  #3  
Antiguo 23-01-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
La respuesta de roman me parece la mas sencilla en tu caso, pero si quieres hacerlo mas complicado aqui te dejo el codigo para hacerlo desde un programa de Delphi.

Código Delphi [-]
var
 scm: SC_HANDLE;
 srv: SC_HANDLE;
 status: SERVICE_STATUS;
 arg: PAnsiChar;
begin
  scm:= OpenSCManager(nil,nil,GENERIC_EXECUTE or GENERIC_READ);
  if scm > 0 then
    begin
      srv:= OpenService(scm, 'NombreDelServicio', GENERIC_EXECUTE or GENERIC_READ);
      if srv > 0 then
        begin
          // Si no esta parado lo paramos
          if QueryServiceStatus(srv,status) then
            if status.dwCurrentState <> SERVICE_STOPPED then
              if ControlService(srv, SERVICE_CONTROL_STOP, status) then
                Sleep(500);  // Le damos un tiempito para que se pare
          arg:= nil;
          // Lo volvemos a iniciar
          StartService(srv,0,arg);
          CloseServiceHandle(srv);
        end;
      CloseServiceHandle(scm);
    end;
end;

No te olvides de agregar "WinSvc" a las uses.

Última edición por Casimiro Notevi fecha: 05-09-2017 a las 09:52:40.
Responder Con Cita
  #4  
Antiguo 05-09-2017
S8VK S8VK is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 4
Poder: 0
S8VK Va por buen camino
Hola,

Agrego ese código para reiniciar el servicio desde Delphi y en la línea "StartService(srv,0,arg);" me da el siguiente error: "E2033 Types of actual and formal var parameters must be identical"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar antes de login Duc API de Windows 5 16-04-2006 04:28:24
Reiniciar servicio IIS jorodgar Varios 3 16-08-2005 06:22:09
Instalacion de un servicio José Arce API de Windows 13 16-08-2004 12:34:05
Anécdotas del servicio técnico DarkByte Humor 4 11-06-2004 19:43:03
Se para el servicio a los 12 segundos aram2r API de Windows 0 17-05-2004 19:55:32


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


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