AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Registry Pfade

Ein Thema von TurboMagic · begonnen am 15. Mai 2024 · letzter Beitrag vom 15. Mai 2024
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.938 Beiträge
 
Delphi 12 Athens
 
#1

Delphi Registry Pfade

  Alt 15. Mai 2024, 18:44
Hallo,

in einem Tool will ich alle installierten Delphi Versionen finden um gewisse
Pfade ermitteln zu können.

Für Delphi Installationen die unter dem aktuellen benutzer installiert wurden
finde ich das schon hiermit:

Delphi-Quellcode:
  Registry.RootKey := HKEY_CURRENT_USER;
  if Registry.OpenKey('SOFTWARE\Embarcadero\BDS', false) then
Und kann damit den BDSCatalogRepositoryAllUsers Eintrag auslesen.
Nur: wie funktioniert das für Isntallationen bei den der Installer "als Administrator
ausführen, d.h. unter einem anderen benutzerkonto installiert wurde oder bei Nutzung der
"Für alle" Option? Wo muss ich da suchen?
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.445 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi Registry Pfade

  Alt 15. Mai 2024, 22:00
Das sollte z.B. auf diese Art gehen:
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Embarcadero\BDS
Auf andere User - die können ja auch eigene Installationen haben, die der aktuelle User nicht hat - kannst du allerdings nur als Admin zugreifen.

Auch etwaige Registry-Zweige, die über den -r Parameter angelegt wurden (also nicht BDS), kannst du mit dem bestehenden Ansatz nicht erreichen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi Registry Pfade

  Alt 15. Mai 2024, 22:05
BDSCatalogRepositoryAllUsers ist für alle Nutzer gleich, also reicht es das einmal zu finden.
Nur BDSCatalogRepository weicht ab.


Es gibt immer den Zweig im CurrentUser.
Wenn die Delphi-IDE gestartet wird, dann kopiert sie sich den Zweig von LocalMachine ins CurrentUser.

Unter HKEY_USERS findet du alle User (aber natürlich hat ein normaler User nicht auf alles Zugriff)

Und im CurrentUser muß es nicht "BDS" heißen, falls man die IDE mit -R startet.


Das mit den Userverzeichnissen ist eh oftmals vollkommen schwachsinnig, bzüglich BDSCatalogRepository und BDSCatalogRepositoryAllUsers,
da z.B. das schrottige Update und auch einige global installierte GetIt-Packete sich im CurrentUser einnisten, obwohl sie global Dateien z.B. im Delphi-InstallationsVerzeichnis ändern,
aber GetIt sieht das dann nur, wenn es mit dem selben Nutzer (meist dem Admin) gestartet wurde ... eigentlich müsste es in LocalMachine/AllUsers rein, wenn es global installiert wird
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (15. Mai 2024 um 22:10 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz