Entwickler-Ecke

Sonstiges (Delphi) - Zugriff auf Registry: Binary oder DWord


mb - Di 11.03.03 14:56
Titel: Zugriff auf Registry: Binary oder DWord
Hallo!

Ich möchte in einem Tool mit TRegistry auf die Registry zugreifen. Wie kann ich das machen, wenn ich eine Zahl auslesen will, aber nicht weiß, ob diese als Binary- oder DWord-Wert in der Registry gespeichert ist ?

Ich habe also eine Variabel:

Quelltext
1:
var Reg: TRegistry                    


...und folgender Code führt ggf. logischerweise zu einer Exception, weil das Zahlenformat nicht stimmt:

Quelltext
1:
i := Reg.ReadInteger('MyValue');                    


Das ganze habe ich natürlich ordnungsgemäß in einen try-except-Block gepackt...


bis11 - Di 11.03.03 15:52

writeInteger -> schreibt eine Integer-Zahl
writeString -> schreibt einen String
WriteBinaryData -> Die Methode speichert einen Object Pascal-Datensatz in einem bestimmten Datensatz, der dem aktuellen Schlüssel zugeordnet ist.
WriteBool -> Die Methode speichert einen booleschen Wert in einem bestimmten Datenwert, der dem aktuellen Schlüssel zugeordnet ist.
WriteExpandString -> Die Methode WriteExpandString speichert einen String, der verkürzte Referenzen auf Umgebungsvariablen enthält, in einen eigens benannten Datenwert, der mit dem aktuellen Schlüssel verbunden ist.

Das sind nur einige der Schreibbefehle um Werte in die Registry zu schreiben, in der OH von Delphi stehen noch mehr drin.


Delete - Di 11.03.03 15:56

bis11 hat folgendes geschrieben:
writeInteger -> schreibt eine Integer-Zahl
writeString -> schreibt einen String
WriteBinaryData -> Die Methode speichert einen Object Pascal-Datensatz in einem bestimmten Datensatz, der dem aktuellen Schlüssel zugeordnet ist.
WriteBool -> Die Methode speichert einen booleschen Wert in einem bestimmten Datenwert, der dem aktuellen Schlüssel zugeordnet ist.
WriteExpandString -> Die Methode WriteExpandString speichert einen String, der verkürzte Referenzen auf Umgebungsvariablen enthält, in einen eigens benannten Datenwert, der mit dem aktuellen Schlüssel verbunden ist.

Das sind nur einige der Schreibbefehle um Werte in die Registry zu schreiben, in der OH von Delphi stehen noch mehr drin.


Und genau das wollte er wohl eher nicht wissen. Siehe hier:
Zitat:

Wie kann ich das machen, wenn ich eine Zahl auslesen will, aber nicht weiß, ob diese als Binary- oder DWord-Wert in der Registry gespeichert ist ?


@mb: Kuck dir mal die Methoden TRegistry.GetDataType, TRegistry.GetDataInfo und TRegistry.GetKeyInfo in der Hilfe an.


mb - Di 11.03.03 15:58

Hallo!

Danke für Deine Antwort; leider ist das aber nicht das, wonach ich gesucht hatte. Die Befehle, die zu TRegistry gehören kenne ich, zumindest dann, wenn Sie zum banalen schreiben oder lesen eines Wertes gehören...

Ich will aber eben einen Wert lesen, bei dem ich nicht weiß, ob er als Binary oder Integer gespeichert ist... Trotzdem will ich in jedem Fall den Wert und keine Exception. Ich dachte, dass es vielleicht einen eleganteren Weg gibt, als die Exceptions abzufangen und dann mit einer anderne Lese-Methode weiter zu versuchen...


mb - Di 11.03.03 15:59

Zitat:

Kuck dir mal die Methoden TRegistry.GetDataType, TRegistry.GetDataInfo und TRegistry.GetKeyInfo in der Hilfe an


Ok, danke. Das werde ich tun.