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 24-02-2010
mcsebas mcsebas is offline
Miembro
 
Registrado: feb 2008
Posts: 78
Poder: 17
mcsebas Va por buen camino
Saber el estado de un Servicio

Holas a todos estoy con el siguiente problema, resulta que estoy haciendo un pequeño programilla que cuando arranca me pide el logeo de un usuario y deseo de antemano chequear si el estado del servicio de MySQL esta activo o detenido o no esta.

Gracias.
Responder Con Cita
  #2  
Antiguo 25-02-2010
Avatar de white_zombie
[white_zombie] white_zombie is offline
Miembro Premium
 
Registrado: nov 2005
Ubicación: Zaragoza - España
Posts: 187
Poder: 19
white_zombie Va por buen camino
Hola, creo que esto te puede servir

Código Delphi [-]
function StateSrv(Host:string; SrvName: String):string;
var
 ServiceControlManager: SC_HANDLE;
 Service: SC_HANDLE;
 ServiceStatus: SERVICE_STATUS;
begin
  ServiceControlManager:= OpenSCManager(Pchar(Host), nil, SC_MANAGER_CONNECT);
  if ServiceControlManager <> 0 then
  begin
    Service:= OpenService(ServiceControlManager,PChar(SrvName),SERVICE_ALL_ACCESS);
    if Service <> 0 then
    begin
      QueryServiceStatus(Service, ServiceStatus);

      case ServiceStatus.dwCurrentState  of
        SERVICE_CONTINUE_PENDING:result:='El servicio está pendiente de continuar';
        SERVICE_PAUSE_PENDING:result:='El servicio está pendiente de pausa ';
        SERVICE_PAUSED:result:='El servicio está pausado';
        SERVICE_RUNNING:result:='El servicio se está ejecutando';
        SERVICE_START_PENDING:result:='El servicio se está iniciando ';
        SERVICE_STOP_PENDING:result:='El servicio se está deteniendo';
        SERVICE_STOPPED:result:='El servicio está detenido';
      end;

      CloseServiceHandle(Service);
    end
    else result:='Desconocido';
    CloseServiceHandle(ServiceControlManager);
  end
  else result:='Desconocido';
end;

Ejemplo de uso:

Código Delphi [-]
var
 estado:string
begin
  estado:=StateSrv('127.0.0.1','MySql');
end;

Esta función podrías usarla para saber el estado de un servicio en tu maquina o en cualquier otra de la red, el nombre del servicio de MySql tendrías que mirar cual es exactamente.

Un saludo.
Responder Con Cita
  #3  
Antiguo 25-02-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción es usar el componete CServiceinfo de las Librerías GlibWMI.
Además de darte las propiedades de todos los servicios instalados en el sistema, te permite cabiar el estado (START, STOP, PAUSE, RESUME,...)



Puedes descargarla desde SourceForge o desde mi página.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 25-02-2010
mcsebas mcsebas is offline
Miembro
 
Registrado: feb 2008
Posts: 78
Poder: 17
mcsebas Va por buen camino
Gracias white_zombie funciona de maravilla y a Neftali quisiera probar la opcion que me decis pero tengo un problema como hago para instalarlas porque sigo la instrucciones del paquete y nada che.

Gracias
Responder Con Cita
  #5  
Antiguo 26-02-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Deberías bastar con cargar el DPK/DPROJ (segun version de Delphi) en Delphi (directorio packages) y compilar e instalar.
Si te sale algun error, colócalo aquí y revisamos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como arrancar o parara un servicio en funcion de otro servicio ?? QuarkBcn API de Windows 12 15-06-2011 14:46:11
saber el estado de los botones del ratón droguerman API de Windows 2 13-04-2007 05:29:57
Cómo saber el "nombre real" de un servicio Casimiro Notevi Windows 10 11-04-2007 20:13:58
Saber el estado de un Trigger muli Firebird e Interbase 4 28-08-2006 12:20:49
Saber si un servicio está en marcha Xulles Varios 1 02-06-2005 10:36:34


La franja horaria es GMT +2. Ahora son las 14:52:18.


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