![]() |
Binär Wert in die Registy schreiben
Hallo,
ich möchte in der Registry, einen vorhandenen Binären Eintrag ändern. Dieser Registry Eintrag soll die Modemeinstellung "warten auf Freizeichen" deaktivieren. Mein Problem liegt jetzt darin das die Werte zwar in die Registry geschrieben werden aber nicht Binär sondern Hex.
Delphi-Quellcode:
Danke schon mal in voraus
var regist: TRegistry;
s: String; begin CreateOddWindow(Handle, false); regist:=TRegistry.Create; try regist.RootKey:=HKEY_LOCAL_MACHINE; regist.OpenKey('SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000',false); s := '3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d3,03,00,00'; regist.WriteBinaryData('Default', s[1], length(s)); Gruß exe1972 [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Re: Binär Wert in die Registy schreiben
Moin Exe1972,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Um binäre Daten zu schreiben, darfst Du den String nicht so aufbauen, wie er z.B. für Reg-Dateien erforderlich ist, sondern jedes Zeichen des Strings ist das jeweilige Byte. Statt:
Delphi-Quellcode:
muss es also:
s := '3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d3,03,00,00';
Delphi-Quellcode:
heissen.
s := #$3c#00#00.... usw.
|
Re: Binär Wert in die Registy schreiben
Hallo Chris,
Danke für die schnelle Antwort das ändern der Zeile
Delphi-Quellcode:
brachte leider nicht den gewünschten Erfolg.
s := '#$3c#00#00#00#00#00#00#00#00#00#00#00#01#00#00#00#d3#01#00#00';
|
Re: Binär Wert in die Registy schreiben
Moin Exec1971,
wo habe ich denn Anführungsstriche verwendet? ;-) Die Verwendung von # gefolgt von einer Zahl ist eine andere Schreibweise für chr(..), und erzeugt einen Character. #$3F meint das Zeichen mit dem Character Code $3F = 63 Dezimal. Es könnte also durch chr(63) oder chr($3F) ersetzt werden. Der String könnte also auch so gebildet werden:
Delphi-Quellcode:
Wichtig:
s := chr($3C)+chr(0)+...;
Deine Ursprungsdaten sind eigentlich hexadezimal dargestellt, nur macht dies bei den meisten Werten nichts aus, ausser beim 3C und D3. Wenn sich die letzte Stelle im Bereich 0-9 befindet, und die erste 0 ist, kannst Du die dezimale Angabe verwenden, ansonsten muss $xx geschrieben werden (xx = die beiden Ziffern). |
Re: Binär Wert in die Registy schreiben
die Lösung sieht folgendermaßen aus
Delphi-Quellcode:
Danke, Chris ohne Dich hätte ich das wohl nie hinbekommen.
s := #$3c + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$00 + #$01 + #$00 + #$00 + #$00 + #$d3 + #$01 + #$00 +#$00;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 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