![]() |
Re: Registrykomponente gesucht
Es könnte natürlich Probleme geben wenn man auf Teile der Registry zugreifen will auf die der aktuelle Benutzer keinen Zugriff hat. Das habe ich noch nie ausprobiert. Ich verwende diese Methode in einigen Programmen um Backups von einigen Registryzweigen zu machen (Konfiguration eigener Programme). Bisher hatte ich noch keine Probleme, allerdings waren die entsprechenden Stellen der Registry für die Benutzer auch nicht eingeschränkt.
Probiers doch einfach mal aus :wink: |
Re: Registrykomponente gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() Ich habe dann doch noch einen anderen Registryexport ausfindig machen können, die beim Auslesen der Datentypen einen anderen Weg geht, nämlich über die windows.pas Code unter: ![]() Ich habe hauptsächlich in der Funktion ExportProc() Änderungen vorgenommen. (siehe Anhang) Was mich ein wenig stört, ist dieser Part:
Delphi-Quellcode:
Ich muss unter Delphi 2009 wegen der Behandlung von Strings als Unicode, die Datenlänge halbieren und mit der Funktion WideCharToHexStr() die Unicode-Daten entsprechend in HEX umwandeln.
REG_BINARY :
begin st_datatype := 'hex:'; st := st_valuename + st_datatype; dataLen := Round(dataLen / 2); for j := 0 to dataLen - 1 do begin st_part := LowerCase(WideCharToHexStr(PChar (data) [j])); if j < dataLen - 1 then st_part := st_part + ','; st := CheckLineLength(st, st_part); If (st[length(st)] = '\') then Delete(st, length(st), 1); end; end;
Delphi-Quellcode:
Geht das nicht einfacher und kann ich das Halbieren der Datenlänge für die for-Schleife ändern? Es ist ja fehleranfällig, da es auch ungerade Datenlängen gibt, ich dann aber so immer noch ein Byte 00 zusätzlich erhalte...
// Unicode in Hex-Format wandeln für Reg_binary
function WideCharToHexStr(Value: Char): string; var Ch : Char; code : String; begin code := IntToHex(Ord(Value), 4); if Ch = #0 then code := IntToHex(Ord(Value), 4); // swapBytes Result := code[3]+code[4]+','+code[1]+code[2]; end; |
Re: Registrykomponente gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe noch ein wenig dran geschraubt und bin auch der Halbierung von Datenlängen aus dem Weg gegangen.
Die Tests vom Abbild meiner Registry ergaben nur minimale Abweichungen, wie zusätzliche Leerzeilen, etc. Die Unit ist D2009 kompatibel. Die Funktionen werden wie in der Registry.pas aufgerufen. Ansonsten werden folgende Datentypen unterstützt: REG_NONE REG_DWORD REG_BINARY REG_SZ REG_MULTI_SZ REG_EXPAND_SZ 11 (QWORD) 188 (keine offizielle Bezeichnung gefunden) Andere sind mir bisher nicht untergekommen. Feedbacks und Hinweise sind willkommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 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