AGB  ·  Datenschutz  ·  Impressum  







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

REG_Binary Wert in Registry ändern

Ein Thema von CodeX · begonnen am 28. Jun 2005 · letzter Beitrag vom 30. Jun 2005
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

REG_Binary Wert in Registry ändern

  Alt 28. Jun 2005, 19:58
hi coder,

in der registry steht ein wert der dort als reg_binary angezeigt wird.
sein wert ist in etwa
3C 00 A1 0D ...
nun müsste ich das in
3C 00 A1 05 ändern können.

momentan habe ich:
Delphi-Quellcode:
reg.Rootkey := HKEY_CURRENT_USER;
reg.OpenKey(RegKey, True);

vSize := reg.GetDataSize(RegValue);
tmpstr := StringOfChar(#00,vSize);
reg.ReadBinaryData(RegName, tmpstr[1], vSize);

repeat
p := Pos(#0, tmpStr);

if p <> 0 then
 begin
  Delete(tmpStr, p, 1);
 end;
until p = 0;
(in etwa von hier)

das problem ist, dass nach dem auslesen in zeichen umgewandelt wird statt in der gewünschten form (3C 00 A1 0D) zu bleiben.
ich brauche einfach den gesamten schlüsselwert als string ("3C 00 A1 0D"), den ich dann bearbeite und wieder zurückschreibe.

wo liegt der fehler? oder doch ganz anders machen?

danke & gruß
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: REG_Binary Wert in Registry ändern

  Alt 29. Jun 2005, 01:19
Moin CodeX,

ein Zeichen ist nur eine andere Darstellung für den zu Grunde liegenden Binärwert.
Was Du da mit der repeat-Schleife machst weiss ich nicht, aber wenn Du einen Wert ändern willst geht das, z.B., so:

if ord(tmpstr[4]) = $0D then tmpstr[4] := chr($05); um das vierte Zeichen von 0D auf 05 zu ändern.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#3

Re: REG_Binary Wert in Registry ändern

  Alt 29. Jun 2005, 12:16
hi christian,

ja du hast recht. das zeichen problem war nur eine darstellungssache. in die registry geschrieben wird es korrekt.
die repeat-schleife hatte ich aus dem verlinkten thread. ist aber wohl wirklich überflüssig/falsch.

eine frage hätte ich aber noch.
kann ich mit diesen werten auch rechnen? dh, wenn ich dieses ersetzen etwas universeller machen möchte.
aus 0D wird 05 indem 8 subtrahiert wird. ich habe nämlich gemerkt, dass es auch sein kann, dass da nicht 0D sondern zb 09 steht. dann müsste da 01 draus werden.

danke und gruß
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: REG_Binary Wert in Registry ändern

  Alt 29. Jun 2005, 13:51
Moin CodeX,

klar kannst Du damit rechnen.

tmpstr[4] := chr(ord(tmpstr[4])-8);
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#5

Re: REG_Binary Wert in Registry ändern

  Alt 30. Jun 2005, 19:26
perfekt. danke.
  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 22:08 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