Regestrykey umbenennen?

Hallo zusammmen…

Ich arbeite in C++ mit den WindowsAPIs um Regestry Keys zu schreiben und zu Lesen…(RegCreateKey,RegSetValue…)
nun möchte ich aber einen Schlüssel umbennen ohne ihn zu löschen und ihn danach wieder anzulegen (weil eine ganze Baumstruktur dahinter liegt)

Währe schön wenn mir jemand helfen könnte.

Gruß Gerd

Hallo Gerd!

Bin mir nicht ganz sicher aber RegReplaceKey könnte da vielleicht helfen. Ansonsten Registry mit CFile auslesen, den KeyWert mit der Find() Methode finden und dann ersetzen und wieder speichern. Das wäre aber sehr unsicher!

Ciao
Catmad

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo zusammmen…

Hallo alleine

Ich arbeite in C++ mit den WindowsAPIs um Regestry Keys zu
schreiben und zu Lesen…(RegCreateKey,RegSetValue…)
nun möchte ich aber einen Schlüssel umbennen ohne ihn zu
löschen und ihn danach wieder anzulegen (weil eine ganze
Baumstruktur dahinter liegt)

Eine direkte Umbenennfunktion gibt es nicht. (ich hab zumindest keine gefunden)

Wie wäre es mit einer rekursiven Funktion, die einen beliebigen Schlüssel kopiert ?

  • Alten Schlüssel mit neuem Namen kopieren
  • Alten Schlüssel löschen ( Vorsicht. Die Löschfunktion von Registry-Schlüsseln arbeitet unter win95 und winNT unterschiedlich !!!)

Währe schön wenn mir jemand helfen könnte.

ich hab’s zumindest versucht :wink:

Gruss Jens

Danke für den Tip, genau das habe ich die letzten 2 Tage gemacht
war garnicht so schwer, und funktioniert auch ganz gut.

Wenn die Funktion jemand braucht soll erbescheid sagen
arbeitet mit folgenden Parametern
BOOL CReg::ReName(CString OldRegKeyName, CString NewRegKeyName)

Gruß Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke für diesen Tip

Hatte ich auch erst vor es mit dieser API zu machen, aber da muß man auf der Platte rumschreiben, und das ist langsam und, wie du schon sagst, unsicher.
Wie ich es gelöst habe ich in meiner anderen Antwort geschrieben.

Dank dir trotzdem das du dir Gedanken gemacht hast.

Gruß Gerd

Hallo Gerd!

Wenn die Funktion jemand braucht soll erbescheid sagen
arbeitet mit folgenden Parametern
BOOL CReg::ReName(CString OldRegKeyName, CString
NewRegKeyName)

Ja her damit, und wenn du schon dabei bist veröffentliche es doch auch im http://www.codeguru.com

Ciao
Catmad