Eksport klucza Rejestrów do pliku *.reg

olesio

Poniżej przedstawiam moduł, który umożliwia zapis wybranego klucza Rejestrów Windows do pliku *.reg typu REGEDIT4.
Po dwurkotnym klinięciu na ikonę takiego pliku możemy dodać jego zawartość do Rejestrów systemu lub go zmodyfikować.
Autorem oryginału, który można znaleźć na http://www.swissdelphicenter.ch/torry/showcode.php?id=1330 lub w zipie
na http://www.delphi32.com/vcl/2450/ jest Arthur Hoornweg. Niestety autor pisał go dawno temu i moduł nie radził sobie
z zapisem kluczy pod XP typu REG_EXPAND_SZ. Poprawiłem to, a także usprawniłem zapis wartości, które w nazwie
znak/i backslasha/y. Dodałem też możliwość wyeksportowania klucza do StringListy zamiast do pliku. W StringListcie
można oczywiście dalej taki plik odpowiednio przygotować dodając choćby kolejne wartości z rejestrów itp. Z oryginalnego
modułu wyciąłem też komentarze przy kodzie. Uważam że kod jest na tyle prosty, że wydały mi się zbędne. Aby używać
tego modułu wystarczy dodać go do sekcji uses i użyć jedną z dwóch procedur (lub jeżeli zajdzie konieczność obie z nich):

Przykład zapisu do pliku *.reg:

begin
  ExportRegistryBranch(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'plik.reg');
end;

Przykład zapisu zawartości do StringListy:

var
  SL : TStringList;
begin
  SL := TStringList.Create;
  ExportRegistryBranchToStringList(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', SL);
  SL.SaveToFile('stringlista.reg');
  SL.Free;
end;

UWAGA.<font color="red"></span>
Pod systemem Windows Vista może zajść konieczność uruchomienia naszego programu jako
Administrator, aby mieć pełne uprawnienia do odczytu danych ze wszystkich kluczy Rejestrów.

Kod modułu spakowany ZIP można pobrać tutaj:regexpo_modifited_and_fixed_by_olesio.zip

0 komentarzy