Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2010
Avatar de mikzero
mikzero mikzero is offline
Registrado
 
Registrado: feb 2009
Posts: 3
Poder: 0
mikzero Va por buen camino
Mismo Problema con Windows 7 Delphi 2007

Cita:
Empezado por Angel Fernández Ver Mensaje
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.
Tengo el mismo Problema, cuando quiero hacer el ReadString no me devuelve nada y la variable rutabin queda con valor "bin\gbak.exe" cuando deberia traerme toda la ruta + bin\gbak.exe.

Estoy usando WINDOWS 7 y Delphi 2007 alguna idea?... Gracias
Responder Con Cita
  #2  
Antiguo 28-11-2012
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Respondo tardíamente (más que responder, es rescatar un tema de la tumba jeje ) por si le sirve a alguien:

Hay que reemplazar
Código Delphi [-]
v_reg.OpenKey('\SOFTWARE\Firebird Project\Firebird Server\Instances', False);

Por:
Código Delphi [-]
v_reg.OpenKeyReadOnly('\SOFTWARE\Firebird Project\Firebird Server\Instances');

Y voilá !!! , ya se puede leer la clave del registro indistintamente en Windows XP, Windows Vista, Windows 7 y Windows 8.

De hecho tengo preparada una función que la utiliza, para leer la ubicación de Firebird y poder ejecutar utilidades como Gbak:

Código Delphi [-]
Function Trayecto_Firebird: String;
Begin
  Result := '';
  With TRegistry.Create Do
    Try
      RootKey := HKEY_LOCAL_MACHINE;
      If OpenKeyReadOnly('\SOFTWARE\Firebird Project\Firebird Server\Instances') Then // Corregido para Windows 7 (se reemplaza OpenKey por OpenKeyReadOnly)
        Result := ReadString('DefaultInstance');
    Finally
      Free;
    End;
End;

Saludos !
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.

Última edición por rretamar fecha: 28-11-2012 a las 14:26:24.
Responder Con Cita
  #3  
Antiguo 19-01-2014
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.490
Poder: 21
MAXIUM Va camino a la fama
Cita:
Empezado por rretamar Ver Mensaje

Y voilá !!! , ya se puede leer la clave del registro indistintamente en Windows XP, Windows Vista, Windows 7 y Windows 8
Comprobado

Útil para leer registro de Windows 64bits
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 escribir en el registro de windows Vista manolop API de Windows 3 08-12-2010 19:42:15
Error al escribir en el Registro en Windows Vista Ana María OOP 4 16-09-2008 16:35:13
Problemas con registro windows vista JF Sebastian Varios 6 14-01-2008 22:16:55
Acceso al registro en Windows Vista sinalocarlos Varios 2 21-03-2007 21:10:49
Acceder al Registro kloud C++ Builder 2 31-01-2006 16:46:22


La franja horaria es GMT +2. Ahora son las 13:41:57.


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