AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie lese ich den Typen REG_MULTI_SZ aus der Registry aus?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie lese ich den Typen REG_MULTI_SZ aus der Registry aus?

Ein Thema von f.r.e.s.h.d · begonnen am 6. Mär 2003 · letzter Beitrag vom 6. Mär 2003
Antwort Antwort
f.r.e.s.h.d

Registriert seit: 6. Feb 2003
Ort: Hamburg
66 Beiträge
 
Delphi 6 Enterprise
 
#1

Wie lese ich den Typen REG_MULTI_SZ aus der Registry aus?

  Alt 6. Mär 2003, 07:54
Ich möchte den Wert als String auslesen, aber der Wert ist wohl Binär, obwohl er als Stringwert in der Registry zulesen ist, aber wenn ich einen doppelklick auf diesen Wert mache, dann wird mir ein Binärwert angezeigt.
  Mit Zitat antworten Zitat
f.r.e.s.h.d

Registriert seit: 6. Feb 2003
Ort: Hamburg
66 Beiträge
 
Delphi 6 Enterprise
 
#2
  Alt 6. Mär 2003, 11:03
stark habs hinbekommen...
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3
  Alt 6. Mär 2003, 11:06
Hallo,

kannst Du uns auch mitteilen wie?
  Mit Zitat antworten Zitat
f.r.e.s.h.d

Registriert seit: 6. Feb 2003
Ort: Hamburg
66 Beiträge
 
Delphi 6 Enterprise
 
#4
  Alt 6. Mär 2003, 11:43
So, hier ist ein Beispiel....

Delphi-Quellcode:
procedure ReadREG_MULTI_SZ(const CurrentKey: HKey; const Subkey, ValueName: string;
  Strings: TStrings);
var
  valueType: DWORD;
  valueLen: DWORD;
  p, buffer: PChar;
  key: HKEY;
begin
  // Clear TStrings
  // TStrings leeren
  Strings.Clear;
  // open the specified key
  // CurrentKey Schlüssel öffnen
  if RegOpenKeyEx(CurrentKey,
                  PChar(Subkey),
                  0, KEY_READ, key) = ERROR_SUCCESS then
  begin
    // retrieve the type and data for a specified value name
    // Den Typ und Wert des Eintrags Ermitteln.
    SetLastError(RegQueryValueEx(key,
                 PChar(ValueName),
                 nil,
                 @valueType,
                 nil,
                 @valueLen));
    if GetLastError = ERROR_SUCCESS then
      if valueType = REG_MULTI_SZ then
      begin
        GetMem(buffer, valueLen);
        try
          // receive the value's data (in an array).
          // Ein Array von Null-terminierten Strings
          // wird zurückgegeben
          RegQueryValueEx(key,
                          PChar(ValueName),
                          nil,
                          nil,
                          PBYTE(buffer),
                          @valueLen);
          // Add values to stringlist
          // Werte in String Liste einfügen
          p := buffer;
          while p^ <> #0 do
          begin
            Strings.Add(p);
            Inc(p, lstrlen(p) + 1)
          end
        finally
          FreeMem(buffer)
        end
      end
      else
        raise ERegistryException.Create('Stringlist expected/ String Liste erwartet...')
    else
      raise ERegistryException.Create('Cannot Read MULTI_SZ Value/'+
        'Kann den MULTI_SZ Wert nicht lesen...');
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ReadREG_MULTI_SZ(*CurrentKEY*, *SubKey*, *ValueName*, *Strings*);
end;

Ich hoffe damit kommen einige weiter falls sie es auch mal brauchen!
  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 16:11 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