Hola de nuevo
Algunas de las cosas que puse en el mensaje anterior, sólo funcionan para Interbase. Por eso, durante estos días he estado mirando de hacer algo genérico para IB/FB.
He creado dos clases, TService y TIBSservice. La primera es genérica para el control de cualquier servicio de Windows. La segunda es específica para el motor de bases de datos IB/FB
La definición de las clases es la siguiente
Código Delphi
[-]
TService = class(TComponent)
public
function GetEnumPriv : boolean;
function GetSysDirectory : string;
function GetServices(sMachine: string; sServices: TStrings): boolean;
function IsNT : boolean;
function IsAdmin: Boolean;
function Display_status(status_code: DWORD) : string;
function ServiceCreate(sMachine, sService, sDisplayName, sBinFile : string;
StartType : integer) : boolean;
function ServiceDelete(sMachine, sService : string) : boolean;
function ServiceStart(sMachine, sService : string) : boolean;
function ServiceStop(sMachine, sService : string) : boolean;
function ExistService(sMachine, sService : string) : boolean;
function ProcessRunning(Proces: string): boolean;
end;
TTipoBD = (tbIB, tbFB103, tbFB15, tbNone);
TIBService = class(TService)
private
FTipoBD: TTipoBD;
protected
public
constructor Create(aOwner: TComponent); override;
function GetVersion: TTipoBD;
function GetInterbaseGuardianFile : string;
function GetIBRootDir: string;
function InterbaseRunning : boolean;
function ShutDownInterbase : boolean;
function StartInterbase : boolean;
function InterbaseInstalled : boolean;
published
property TipoBD: TTipoBD read FTipoBD write FTipoBD;
end;
El nombre de los métodos creo que es bastante significativo para haceros una idea de lo que hacen
Sólo lo he probado en 3 SO (NT, XP y 2k prof.) y con IB 1.5, por lo que no garantizo su plena funcionalidad (razón por la que, de momento no lo subiré a mi web).
Si a alguien le interesa o quiere hacerme de beta-tester con otra combinación.... que me deje aquí un mensaje y ya nos ponemos en contacto