AGB  ·  Datenschutz  ·  Impressum  







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

Registrykomponente gesucht

Ein Thema von amigage · begonnen am 11. Jan 2010 · letzter Beitrag vom 14. Jan 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Registrykomponente gesucht

  Alt 13. Jan 2010, 11:40
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
Ralf Kaiser
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#12

Re: Registrykomponente gesucht

  Alt 13. Jan 2010, 11:50
Zitat von Astat:
Wäre natürlich nett, wenn Du uns danach die Änderungen zukommen lassen würdest.
Ich hatte angefangen, mich damit zu beschäftigen, habe es jedoch aufgrund der Seite http://qc.embarcadero.com/wc/qcmain.aspx?d=23428 sein gelassen, da die mitgelieferte registry.pas in Delphi2009 viele Schlüsseltypen nicht kennt. Ich habe zwar die Erweiterung aus dem Jahr 2006 durchgeführt, bekomme es aber nicht kompiliert.

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: http://www.experts-exchange.com/Prog..._24754350.html

Ich habe hauptsächlich in der Funktion ExportProc() Änderungen vorgenommen. (siehe Anhang)

Was mich ein wenig stört, ist dieser Part:

Delphi-Quellcode:
      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;
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.

Delphi-Quellcode:
  // 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;
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...
Angehängte Dateien
Dateityp: pas unitexregistry_174.pas (26,6 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#13

Re: Registrykomponente gesucht

  Alt 14. Jan 2010, 19:54
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.
Angehängte Dateien
Dateityp: pas unitexregistry_852.pas (28,7 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:24 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