działy

  Redakcyjne
  News
  Software
  Hardware
  Internet
  Webmastering
  Linux
  Programowanie
  Elektronika
  Gry
  Magazyn
  Grafika
  Telefonia
  Dźwięk
  Humor
 

Partnerzy

Kliknij na link by
zobaczyć opis:
 

  World Warez Archive
  Q119
  Lomsel
  Emu Struś
  X-zin
  Comp.w.pl
  Osama
  SiteQl

@t-online

 Dostępne po połączeniu z Internetem:

  Archiwa
  Download
  Dodaj stronę
  Forum @t
  Ogłoszenia
  Bramka SMS
  Grupa dyskusyjna

 

Sponsorzy

Sponsorem nagród jest:

 

 
 

Rejestr - W poszukiwaniu danych

Wstęp
    Cześć Wam! Jeśli przeczytacie ten text do end'a okaże się, że mógłby nosić tytuł Ashampoo 99 Delux. Jednak nie będę tutaj opisywał w całości tego programu. Posłuży nam on jedynie jako narzędzie pracy przydające się najczęściej zaawansowanym użytkownikom. Ashampoo 99 - bo o nim mowa służy do przywracania dawnych ustawień systemu, czyli stanu rejestru plików INI, itp. w jakim się znajdowały przed zainstalowaniem felernej gry czy aplikacji. Nie musisz się nim posługiwać zawsze - przyznaje deinstalowanie wszystkich aplikacji przez Ashampoo byłoby z deka kłopotliwe ;) Większość gier i programów ma swoje deinstalatory, które nie przez przypadek znajdują się na krążku z naszą ulubioną grą. Przejdźmy do wytłumaczenia czym jest deinstalator. Deinstalator jest narzędziem pozwalającym "bezpiecznie" usunąć aplikacje tzn. tak, aby wszystkie zmiany wprowadzone przez program zostały usunięte. Dotyczy to przede wszystkim plików konfiguracyjnych i wpisów do rejestru. No właśnie. Czasami zdarza się, że program nie ma deinstalatora. Często znajdujemy o tym wzmiankę w opisie progsa, w tym wypadku może przyjść nam z pomocą Ashampoo 99. Instalujemy przez to narzędzie interesujący nas program i zapisujemy log na dysku. Gdy przyjdzie czas na usunięcie aplikacji, wówczas wystarczy jedynie odpalić Ashampoo i kliknąć na przycisk "Remove an Application" - przez resztę przeprowadzi nas Wizard. Jeszcze lepszym sposobem jest zrobienie zrzutu rejestru przed i po instalacji i zapisanie go na dysku, aby potem, gdy chcemy wyrzucić program można było dwie wersję porównać i zobaczyć co program naniósł do systemu.

Screen(Kliknij)

Dla ambitnych ?
    Chciałbym tutaj troszkę rozwinąć sposób porównywania dwóch wersji rejestru.
Załóżmy, że uparliśmy się na napisanie programu, który w znacznym stopniu nakładałby się na możliwości konfiguracyjne systemu. Lecz co w wypadku, gdy nie wiemy gdzie znajduję się interesująca nas wartość. Z pomocą przychodzi Ashampoo 99 Delux. Wykonujemy zrzut rejestru przed i po włączeniu danej opcji konfiguracyjnej systemu. Np:
Wykonuję zrzut rejestru, klikam kolejno Start>Ustawienia>Opcje Folderów>(karta)Widok i zaznaczam opcję "Pokazuj wyskakujące opisy folderów i elementów pulpitu". Następnie jeszcze raz zrzucam rejestr i porównuję obie jego wersję. Ashampoo 99 Delux obrazuje mi która wartość w rejestrze się zmieniła. Można z tego wywnioskować, że wartość "ShowInfoTip" odpowiada za włączenie/wyłączanie ów opcji.
Tak można robić teoretycznie ze wszystkim. 

Piszemy program
    Pomysł napisania takiego programu jest nieco lamerski, ale chodzi tu przecież o przykład. A więc zabieramy się do pisania programu, który będzie potrafił zmienić opcję systemu, która jeszcze na dodatek znajduję się w jego konfiguracji. Jak widzicie pisanie takich programów nie ma sensu. I chciałbym tu kogoś oświecić, bo nie rzadko w sieci spotykam równie przypalone pomysły.
Uruchomcie Delphiego. Następnie z palety Standard wstawcie komponent CheckBox. Jest to pole wyboru. W Inspektorze Obiektów zmieńcie jego właściwość Caption na "Pokazuj wyskakujące opisy pomocy" czy jak tam sobie zażyczycie. Za pomocą F12 przenieś się do edytora kodu. Na samym szczycie unit'u powinna znajdować się sekcja uses, do której należy dodać (po przecinku) moduł Registry. Jest to moduł dający nam możliwość obsługiwania rejestru. Jednak aby go użyć należy go zadeklarować. Aby to uczynić, należy dopisać po słowie var (przed sekcją implementation) linijkę kodu. Powinno to wyglądać w ten sposób:

var
Form1: TForm1;
Reg: TRegistry;

Teraz kliknijcie double na CheckBox'a i między begin a end wpiszcie taki kod:

Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Try
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\

Advanced',False);
Reg.WriteBool('ShowInfoTip',CheckBox1.Checked);
Except
End;

Pierwsza jego linijka przypisuje do zmiennej Reg klasę TRegistry. Druga, ustawia domyślny klucz na HKEY_CURRENT_USER.
Jak wiecie istnieje sześć kluczy, są to:
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE,

HKEY_USERS, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA.
W Delphi jednak nie musisz podawać, że głównym kluczem jest HKEY_CURRENT_USER. Jeśli nic nie napiszesz program domyślnie będzie próbował odszukać dany klucz w

HKEY_CURRENT_USER. Jednak ja przyjąłem to pisać aby i kod potem łatwo odczytać :)
Trzecia linijka to "Try". Słówko bardzo pomocne w programowaniu. Jest to tak zwana obsługa wyjątków. Jeśli program wykona coś nieprawidłowego, wówczas wykonywane są instrukcję za słowem Except.
Czwarta linijka to Otwarcie klucza w którym znajduję się nasza wartość. Następna linijka to przypisanie naszej wartości stanu kontrolki CheckBox (zaznaczona daje 1, odwrotnie daje 0). OKey, ale przydałoby się trochę ulepszyć ten programik. Możemy unowocześnić go stosując przypisywanie przy starcie naszej kontrolce, bieżącej wartości z rejestru. Kod wykonujący tą operację wyglądałby następująco:

Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Try
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion

\Explorer\Advanced',False);
CheckBox1.Checked := Reg.ReadBool('ShowInfoTip');
Except
End;

Z grubsza nie różni się prawie niczym, lecz po dokładnym przeanalizowaniu, stwierdzisz, że nieco zmodyfikowana została linijka, która w poprzednim przykładzie odpowiadała za zapisywanie wartości - tutaj, zależy nam na odczycie, więc jeśli chcielibyśmy to przetłumaczyć zapewne wyszłoby nam coś w rodzaju:
Otwóz klucz: Reg.OpenKey('Software\Microsoft\Windows\

CurrentVersion\Explorer\

Advanced',False);
Pole wyboru CheckBox'a = Odczyt z wartości ShowInfoTip. Jeśli ShowInfoTip=1, pole zostanie zaznaczone, jeśli 0 pozostanie odznaczone.

Zakończenie
    Ashampoo'99 Delux jest bardzo ciekawym, wartym naszej uwagi programem. Pozwala nam nie tylko na dokładny wgląd w informację ("śmieci") jakie zostawiają instalowane przez nas programy, ale także na sprawdzanie różnego rodzaju ustawień, do których dotarcie, w rzeczywistości zajęłoby nam sporo czasu. Samą aplikację w wersji Shareware znajdziecie na kwietniowej płytce ENTER'a. Stronę producenta powinniście znaleźć pod adresem www.ashampoo.com. Życzę miłej pracy z programem!

Załącznik - przykład

 Łukasz 'Lukas' Wyporek
  wypoker@poczta.onet.pl