Announcement

Collapse
No announcement yet.

Wert aus der Registry-Schlüssel lesen und Dateiversion lesen, wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wert aus der Registry-Schlüssel lesen und Dateiversion lesen, wie?

    Hallo,

    ich arbeite mit dem C++Builder 3 von Borland und erstelle VCL-Programme. Von Delphi hab' ich komplett keine Ahnung. Nun will ich mit Inno Setup 5.2.3 einen Install-Assistenten für ein Programm zusammenstellen. Dieser beinhaltet eine zusätzliche Installation der BDE (Borland Database Engine) bei Bedarf. Ich möchte nun herausfinden, ob die BDE installiert ist und wenn ja, in welcher Version. Dazu kann man im Inno Setup-Script (das Script enthält die Anweisungen, was der Install-Assistent später so machen soll, wie er aussieht etc.) in einem gesonderten Code-Bereich Delphi-Pascal-Code(?) einfügen. Mit solchem Code möchte ich nun drei Dinge machen:

    1. in der Registry prüfen, ob die BDE installiert ist. Das geht wohl so:
    Code:
    if (RegValueExists(HKLM, 'SOFTWARE\Borland\Database Engine', 'DllPath')) then ...
    2. Den Wert des Eintrags "DllPath" dieses Schlüssels müsste ich nun weiterverwenden (auslesen und in Variable speichern?). Dann könnte ich
    3. die Dateiversion der Datei bdeadmin.exe prüfen. Diese liegt nämlich in dem Pfad, der unter DllPath eingetragen ist. Manuell erhalte ich die Version, wenn ich unter WinXP->Arbeitsplatz->rechte Maustaste auf bdeadmin.exe klicke und dann auf Reiter "Version" gehe.

    Also kurz:
    Wie kann ich den Pfad (Wert) aus dem Eintrag DllPath des Schlüssel lesen und weiterverwenden?
    Wie kann ich die Versionsinformation aus der bdeadmin.exe lesen, welche in zuvor ermitteltem Pfad liegt?

    Ich hoffe ihr könnt mir helfen - wie gesagt, Delphi ist überhaupt nicht mein Gebiet ...

    MfG

  • #2
    Guten Morgen,

    ich bin nun schon einen Schritt weiter: Ich habe mir mal auf delphi-treff.de unter Tipps & Tricks die Erläuterungen zum Arbeiten mit der Registry angesehen. Dort wird immer mit einem TRegistry-Objekt gearbeitet. leider kennt Inno diesen Typ nicht... Also wenn ich im var-Bereich schreibe:
    Code:
    Registry : TRegistry;
    meldet Inno beim compilieren: "unknown type"

    Es gibt doch bestimmt auch grundlegende Befehle um mit der Registry zu arbeiten? zB. kennt Inno ja diesen:
    Code:
    RegValueExists(... , ... , ...)
    Welchen grundlegenden Befehl gibt es um einen Eintrag aus einem Schlüssel auszulesen?

    Ich habe auch mal probiert:
    Code:
    OpenKey(... , ...)
    aber das kennt Inno auch nicht

    Comment


    • #3
      Gut,

      es hat sich erledigt. Ich habe eine Liste unterstützter Funktionen gefunden, mit denen ich arbeiten kann!

      MfG

      Comment

      Working...
      X