habe wieder einmal ein Problem, bzw. bräuchte einen denkanstoß.
Ich möchte in der Registry 2 verschiedene Schlüssel auslesen.
Anhand der ausgelesene Werte will ich prüfen ob ein bestimmter ODBC Treiber vorhanden ist.
Es wird der 32bit Wert und der 64bit Wert ausgelesen.
Code: Alles auswählen
function TfrmMain.ODBCTreiberPruefen() : boolean;
var
Reg32Liste : TStrings;
Reg64Liste : TStrings;
Reg32Text : String;
Reg64Text : String;
ODBC32Text : String;
ODBC64Text : String;
reg: TRegistry;
begin
try
ODBC32Vorhanden := false;
ODBC64Vorhanden := false;
ODBC32Text := 'SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers';
ODBC64Text := 'SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers';
reg := TRegistry.Create(KEY_READ);
Reg64Liste:=TStringList.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKeyReadOnly(ODBC64Text) then
begin
reg.GetValueNames(Reg64Liste);
Reg64Text := Reg64Liste.Text;
if Pos(DRIVER64, Reg64Text) <> 0 then ODBC64Vorhanden := true;
end;
reg.Free;
Reg64Liste.Free;
Reg32Liste:=TStringList.Create;
reg := TRegistry.Create(KEY_READ);
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKeyReadOnly(ODBC32Text) then
begin
reg.GetValueNames(Reg32Liste);
Reg32Text := Reg32Liste.Text;
if Pos(DRIVER32, Reg32Text) <> 0 then ODBC32Vorhanden := true;
end;
Reg32Liste.Free;
finally
reg.Free;
end;
end;
Vielleicht sieht irgendjemand den Fehler in meinem Code.
Danke.
Grüße