![]() |
Registry: Typ ermitteln
moin,
gibt es eine funktion der winapi mit der ich den typ eines keynamens bekomme? bei funktionen wie RegQueryValueEx übergibt man ja den typ, aber ich hab noch keine gesehen mit der man den typ bekommt. Also mit typ meine ich z.b REG_SZ usw |
Re: Registry: Typ ermitteln
Erm... Bei RegQueryValueEx bekommst Du den Typ zurück. Du übergibst ihn nicht.
Alternativ kannst Du auch mit RegEnumValue alle Namen der Values incl. deren Typ zurückgeben lassen. |
Re: Registry: Typ ermitteln
Na klar, du übergibst als Typ REG_NONE, und erhältst im Gegenzug dafür den richtigen Typ geliefert. Ich habe dir, @Pseudemys Nelsoni, gestern (?) den Link zu einem DF-Beitrag gegeben, und in den Tutorials wird auch vorgemacht, wie man den Typ ermittelt. Und gerade eben habe ich auch was dazu bei deinem Exception-Beitrag geschrieben.
Edit: Name ergänzt, weil sich Phoenix reingedrängelt hat. ;) |
Re: Registry: Typ ermitteln
Zitat:
Zitat:
|
Re: Registry: Typ ermitteln
Moin!
Zitat:
MfG Muetze1 |
Re: Registry: Typ ermitteln
ok, dann noch eine frage dazu. Ich habe folgendes(nur das wichtigste daraus) aus den Win32api tut sources von luckie:
Delphi-Quellcode:
function Reg_ReadString(const RootKey: HKEY; const RegVal: string): string;
var lpType: DWORD; begin lpType := REG_NONE; if(RegQueryValueEx(RootKey,@RegVal[1],nil,@lpType,nil,@cbData) = ERROR_SUCCESS) ..... wieso wird lpType denn auf REG_NONE gesetzt wenn die funktion "RegQueryValueEx" sowieso nicht daraus liest? |
Re: Registry: Typ ermitteln
Evtl. wäre es ja denkbar, dass das Auslesen des Typs mal nicht klappt. In dem Fall hätte die Variable dann auch keinen Wert. So aber setzt du vorher REG_NONE, und es dürfte/wird beim Vergleich bzw. bei der Typprüfung überhaupt keine Probleme geben.
(btw: Das ist meine Meinung. Sollte die falsch sein, schiebe ich den schwarzen Peter an NicoDE weiter, von dem nämlich die Funktion stammt, durch die ich das allererste Mal Kontakt mit der Registry auf API-Ebene erhielt. ;)) |
Re: Registry: Typ ermitteln
Ich habe inzwischen eine ziemlich komplette Übersetzung der gesamten Registry-Funktionen für Delphi selber gemacht. Es ist tatsächlich so, das unter ganz widrigen Umständen der Wert von Type undefiniert ist.
Ist er aber initialisiert, so wird er auch nicht geändert - demnach kann man hier dann sauber weiterarbeiten ohne gefahr zu laufen, zufällig einen gültigen Wert drin stehen zu haben, der dann aber nicht passt. |
Re: Registry: Typ ermitteln
Zitat:
Ist also einfach eine alte Angewohnheit, die ich, trotz teilweiser Sinnlosigkeit bzw. dem Anschein von Verfolgungswahn, nicht geneigt bin wieder abzulegen :) (es kann unter Win9x zu einem Crash kommen, wenn man TLVItems nicht mit Nullen füllt, obwohl die Werte laut Flags ignoriert werden sollten... um nur ein Beispiel zu nennen) |
Re: Registry: Typ ermitteln
@Nico, Phoenix: Also war meine Vermutung richtig. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz