Hola a todos. Quisiera comentaros un problema que tengo con windows vista (y que no tenía en windows xp) al tratar de leer una clave del registro.
Concretamente se trata de saber la ubicación del fichero gbak.exe de firebird para realizar copias de seguridad.
Hasta ahora, el código que utilizaba y que ya digo, funciona perfectamente en windows xp, es el siguiente:
Código Delphi
[-]
procedure TFormConfigurar.btnDetectarClick(Sender: TObject);
var
v_reg: TRegistry;
MaxFileNameLength, VolFlags, SerNum: DWord;
rutabin: string;
begin
with TRegistry.Create do
begin
v_reg := TRegistry.Create;
v_reg.RootKey := HKEY_LOCAL_MACHINE;
try
v_reg.OpenKey('\SOFTWARE\Firebird Project\Firebird Server\Instances', False);
rutabin := v_reg.ReadString('DefaultInstance') + 'bin\gbak.exe';
closekey;
finally
v_reg.Free;
end;
end;
edtRutaGBAK.Text := rutabin;
end;
Este código pone en la variable rutabin el texto de gbak.exe con la ruta completa para llamarlo con shellexecute.
He comprobado que la clave existe y que es correcta. Es la siguiente:
Equipo\HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances\DefaultInstance
¿Alguna forma de solucionarlo?
Un saludo al foro.