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