AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry Binary lesen und schreiben

Ein Thema von Landogar-Garuno · begonnen am 6. Apr 2009 · letzter Beitrag vom 23. Apr 2009
Antwort Antwort
Landogar-Garuno

Registriert seit: 22. Feb 2008
36 Beiträge
 
#1

Registry Binary lesen und schreiben

  Alt 6. Apr 2009, 11:50
hallo alle zusammen...

habe mal wieder ein problem...

das lesen von Registry binary funzt

hier der code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Key: HKEY;
  buf: array of byte;
  size: integer;
  i: integer;
  s: string;
begin
  if RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 0, KEY_READ, Key) = ERROR_SUCCESS then
  try
    size := ReadRegBinary(Key, 'LicenseInfo', buf, 0);
    if size <> -1 then begin
      SetLength(buf, size);
      ReadRegBinary(Key, 'LicenseInfo', buf, size);
    end;
  finally
    RegCloseKey(Key);
  end;

  s := '';
  for i := 0 to High(buf) do begin
    s := s + IntToHex(buf[i],2) + ' ';
  end;
 Richedit1.Font.Name := 'Courier New';
 richedit1.text:=(s)
wobei die lösung mit richedit mir nicht gefällt...aber StringGrid bekomme ich nicht hin

so nun mein Problem...wie schreibe ich den wert in die registry , den ich geändert habe im richedit

kann mir jemand helfen ?

eventuell auch vorschläge für StringGrid ?

danke

habe vergessen......

Delphi-Quellcode:
function ReadRegBinary(Key: HKEY; Name: string; var Buffer; BufSize: Integer): integer;
var
  DataType: Integer;
  Status: integer;
begin
  result := -1;
  DataType := REG_NONE;
  try
    // return the size of the buffer required
    if BufSize = 0 then begin
    // get data type and buffer size
      Status := RegQueryValueEx(Key, PChar(Name), nil, @DataType, nil, @BufSize);
      if Status = ERROR_SUCCESS then begin
        result := BufSize;
      end;
    end else begin
      // get data
      if RegQueryValueEx(Key, PChar(Name), nil, @DataType, PByte(Buffer),
         @BufSize) = ERROR_SUCCESS then result := BufSize
      else result := -1;
    end;
  except
    result := -1;
  end;
end;
[edit=mkinzler]Code.Tags durch Delphi-Tags ersetzt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Registry Binary lesen und schreiben

  Alt 23. Apr 2009, 01:37
Hallo.

Splitte zuerst alles wieder in 2er Paare auf.

Dann wandelst du die 00..FF Paare wieder in Integer um: http://www.delphipraxis.net/internal...ect.php?t=3882

Und dann schreibst du diese Integer-Sequenz wieder in die Registry als Puffer.

Noch einfacher könnte es sogar hiermit gehen: http://www.greatis.com/delphicb/tips...s-hex2bin.html .

Solange alles bei String bleibt ist es OK. Aber Achtung beim Wandeln in PChar. Denn ein PChar bricht ab, sobald ein 00h in deiner Binärsequenz auftaucht.

Gruß
blackdrake
Daniel Marschall
  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 01:05 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