![]() |
REG_Binary Wert in Registry ändern
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:
(in etwa von
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; ![]() 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ß |
Re: REG_Binary Wert in Registry ändern
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:
Delphi-Quellcode:
um das vierte Zeichen von 0D auf 05 zu ändern.
if ord(tmpstr[4]) = $0D then tmpstr[4] := chr($05);
|
Re: REG_Binary Wert in Registry ändern
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ß |
Re: REG_Binary Wert in Registry ändern
Moin CodeX,
klar kannst Du damit rechnen.
Delphi-Quellcode:
tmpstr[4] := chr(ord(tmpstr[4])-8);
|
Re: REG_Binary Wert in Registry ändern
perfekt. danke. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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