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
|