Ver Mensaje Individual
  #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
Reputación: 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