AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) TRegistry.DeleteKey - Löschen von Unterschlüsseln
Thema durchsuchen
Ansicht
Themen-Optionen

TRegistry.DeleteKey - Löschen von Unterschlüsseln

Offene Frage von "SteffenSchm"
Ein Thema von SteffenSchm · begonnen am 4. Okt 2013 · letzter Beitrag vom 8. Okt 2013
Antwort Antwort
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 12:56
Hallo,

ich möchte beim Deinstallieren meines Delphi-Programms auch die entsprechenden Einträge aus der Registry löschen.

In der Hilfe von Delphi zu DeleteKey steht: "Unter Windows NT müssen die Unterschlüssel explizit mit einzelnen Aufrufen von DeleteKey entfernt werden."
Ich nehme mal an, das gilt auch für höhere Windows-Versionen.

Aber was passiert den, wenn ich einen Haupschlüssel lösche ohne die Unterschlüssel zu löschen? Funktionieren tut das schon (unter Win7), und in der Registry sind die Unterschlüssel auch weg. Wo sollen sie auch hängen, wenn der Hauptscghlüssel weg ist?
Sind die Unterschlüssel dann noch in der Registry vorhanden und können in der Baumstruktur nur nicht angezeigt werden?
Oder ist es doch nicht notwendig alle Unterschlüssel einzeln zu löschen?

Vielleicht kennt sich jemand damit aus.
Danke!
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 13:26
Es passiert nichts, da der Schlüssel nicht gelöscht werden kann (Fehlermeldung beim Löschen), wenn etwas in ihm drin ist.

Wenn es in neueren Windowsversionen doch gelöscht werden sollte, also wenn das funktioniert (ohne Fehlermeldung), dann würden auch die Unterschlissel und Werte mit gelöscht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 14:11
Hallo himitsu,

danke für die schnelle Antwort.

Bei Win7 ist es zumindest so: Wenn ich den Hauptschlüssel lösche sind auch alle Unterschlüssel weg. Fehlermeldung kommt keine. Ich denke ich lasse das jetzt so.
Steffen
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#4

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 16:56
Hallo Steffen,

ich habe auch mein eigenes Indtallations/Deinatallationsprogramm im Einsatz, und lösche auch mit "DeleteKey". Genau habe ich es nicht mehr im Kopf, ob und wenn ja unter welchen Betriebssystemen das Löschen eines Haupt-Schlüssels auch die Unterschlüssel löscht. Ich bin mir aber absolut sicher, dass dies NICHT mit allen Betriebssystemen funktionieren wird. Also werden bei der Deinstallation deiner Software irgendwann mal Reste in der Registry zurückbleiben. Ich an deiner Stelle würde es darum so machen, wie in der Hilfe beschrieben. Der Mehraufwand (rekursiver Aufruf einer Prozedur welche alle Unterschlüssel zuvor löscht) ist doch marginal.
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 16:58
O.k. Danke für den Hinweis.
Werde ich mir alos die (kleine) Mühe machen.
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 17:14
function TRegistry.DeleteKey(const Key: string): Boolean; sieht so aus, als wenn darin eine Schleife verbaut ist, welche Unterschlüssel löscht, aber ich weiß nicht seit wann das da eingebaut ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#7

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 4. Okt 2013, 18:56
stimmt, du hast recht, aber

a) er hat ja noch 2010 und da war das soweit ich weiß noch nicht
b) wenn die Unterschlüssel weitere Unterschlüssel enthalten, werden diese nicht gelöscht, zumindest nicht bei XE2 (soeben ausprobiert unter Win-7 64-Bit)
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: TRegistry.DeleteKey - Löschen von Unterschlüsseln

  Alt 8. Okt 2013, 09:02
Hallo himitsu und musicman56,

danke für Eure Antworten.

Habe gerde mal nachgeschaut. In Delphi2010 löscht DeleteKey auch über eine Schleife alle Unterschlüssel. Da in dieser Schleife dann DeleteKey wieder aufgerufen wird, dürften dadurch auch allel Unter-Unter- und Unter-Unter-Unter- und ...-Schlüssel gelöscht werden.

Und an meinem Rechner (Win7) funktioniert das Ganze auch.
Also werde ich es so lassen und auf Delphi vertrauen.
Steffen
  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:48 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