Okna od kuchni

Budowa i działanie Rejestru Windows

W trzydziestodwubitowych wersjach Windows 98, 2000 oraz XP Rejestr determinuje zachowanie wielu składników systemu operacyjnego. Wiedza na temat zasad manipulowania wpisami tej bazy jest przydatna zarówno dla programistów, jak i dla zwykłych użytkowników.

Jeżeli kiedyś miałeś już okazję przeczytać coś o Rejestrze systemowym, to jestem przekonany, że widziałeś ostrzeżenie w stylu: „nie próbuj tego sam w domu” lub „nie dokonuj żadnych zmian w Rejestrze, gdy nie jesteś przekonany, że wiesz, co robisz”. Są to jak najbardziej słuszne stwierdzenia, ponieważ jeżeli popełnisz błąd podczas wprowadzania zmian do Rejestru, to konsekwencją tego może być poważne uszkodzenie systemu, a nawet konieczność ponownej instalacji Windows. Przed dokonaniem poważniejszych modyfikacji w systemowej bazie informacji należy zatem utworzyć jej kopię zapasową. Pamiętajmy też, że wszelkie zmiany są natychmiast wprowadzane do pliku Rejestru (Ntuser.dat) i że nie mamy do dyspozycji polecenia Cofnij.

W głąb systemu

Rejestr powstał jako alternatywa dla plików INI i jest centralną bazą danych systemów Windows 98/2000/XP, w której przechowywane są informacje oraz ustawienia dotyczące konfiguracji sprzętowej, ustawień poszczególnych użytkowników oraz wpisy dotyczące zainstalowanych aplikacji. Jest to jeden z najciekawszych elementów Okien. Dostęp do Rejestru możemy uzyskać za pomocą narzędzia Regedit.exe. Edytor umożliwia modyfikowanie zawartości systemowej bazy danych. Po zainstalowaniu Windows Regedita nie znajdziemy (dotyczy to wszystkich edycji Okien) w menu Start ani na Pulpicie, ponieważ został on celowo ukryty przed niedoświadczonymi użytkownikami. Podczas instalacji plik Regedit.exe jest umieszczany w folderze Windows.

W Rejestrach systemów Windows 2000 i XP dane są zorganizowane w drzewiastą strukturę, w której wyróżniamy pięć kluczy głównych: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG. Jedynie Windows 98, oprócz wyżej wymienionych kluczy głównych, zawiera dodatkowo jeszcze gałąź HKEY_DYN_DATA.

Klucz, którego nazwa rozpoczyna się od HKEY, nazywany jest głównym (patrz: ramka na

s. 96

). Każdy klucz reprezentuje jedną grupę danych konfiguracyjnych (ustawienia związane ze sprzętem oraz informacje o użytkownikach). Wszystkie wpisy, które znajdują się w Rejestrze, są pogrupowane w klucze. Każdy z nich zawiera jeden lub kilka podkluczy, które z kolei przechowują wartości. Takie podejście pozwala w łatwy sposób grupować wszystkie opcje. W rezultacie powstaje hierarchiczne drzewo, które można zobaczyć, uruchamiając program Regedit.

Z czym to się je

Omawiając budowę Rejestru, nie sposób nie wspomnieć o wartościach. W prawym okienku Edytora Rejestru wyświetlane są wartości aktywnego klucza. Jak już pewnie zauważyłeś, okienko jest podzielone na trzy kolumny. W pierwszej, zatytułowanej Nazwa, widoczna jest nazwa wartości, druga kolumna definiuje typ wartości (o tym za chwilę), same wartości widoczne są natomiast w trzeciej kolumnie, zatytułowanej Dane. Każdy klucz czy podklucz zawiera przynajmniej jedną wartość o nazwie Domyślna. Jest ona automatycznie dodawana podczas tworzenia nowego klucza i w większości przypadków pozostaje niezdefiniowana. Wszystkie inne pozycje, które znajdują się w tym samym kluczu, muszą mieć określoną zarówno nazwę, jak i wartość. Edytując Rejestr, możemy do niego wpisywać wartości następujących typów:

– REG_SZ – ciąg tekstowy o zmiennej długości; może zawierać zarówno znaki UNICODE, jak i ANSI. Typ REG_SZ jest jednym z najczęściej używanych typów danych.

– REG_DWORD – typ danych reprezentowany przez 32-bitową liczbę całkowitą. Ponieważ Rejestr nie wykorzystuje danych typu logicznego, typ REG_DWORD najczęściej używany jest jako określenie wartości boolowskich, czyli przyjmuje wartość 0 lub 1, co odpowiada stałym True i False – Prawda i Fałsz.

– REG_BINARY – typ danych binarnych, na które składają się wyłącznie zera i jedynki. Większość informacji dotyczących konfiguracji sprzętowej jest jednak przechowywana i wyświetlana w Edytorze Rejestru w formacie szesnastkowym.

– REG_EXPAND_SZ – zakończony zerem rozszerzony łańcuch znaków UNICODE lub ANSI o zmiennej długości. Ten typ danych odnosi się do zmiennych środowiskowych (na przykład „%PATH%”).

– REG_MULTI_SZ – ciąg wielokrotny. Typ reprezentuje grupy ciągów zawierające zestawienia lub wartości wielokrotne, oddzielone spacjami lub przecinkami.

Zbędne informacje?

Po bliższym zapoznaniu się z Rejestrem zauważymy, że niektóre nazwy kluczy występują wielokrotnie. Co więcej, nie tylko nazwy, ale i wartości tych kluczy są takie same. Dzieje się tak dlatego, że pewne klucze są budowane na podstawie innych. Podczas wprowadzania jakiejkolwiek zmiany przez użytkownika system operacyjny Windows zapisuje ją we wszystkich powiązanych kluczach. Zmiany wprowadzone w HKEY_LOCAL_MACHINE\Software\Classes znajdują się także w kluczu HKEY_CLASSES_ROOT, ponieważ jest on budowany na bazie HKEY_LOCAL_MACHINE\Software\Classes. Podobnie podczas logowania się użytkownika do systemu określana jest zawartość HKEY_CURRENT_USER w oparciu o HKEY_USERS\{id użytkownika}. Jedynym wyjątkiem jest gałąź \Software\Microsoft\Windows\Current-Version, dostępna zarówno w HKEY_CURRENT_USER, jak i w HKEY_LOCAL_MACHINE. Nazwy tych dwóch gałęzi umieszczonych w różnych kluczach głównych są identyczne, ich znaczenie jest natomiast różne. Pozycje, które znajdują się w HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion zawierają informacje związane z użytkownikiem, podczas gdy dane z gałęzi HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current-Version opisują wartości globalne, dotyczące całej maszyny, oprogramowania i wszystkich użytkowników.

Programy ułatwiające zarządzanie Rejestrem
Nazwa programu Przeznaczenie System Cena Adres WWW [http://]
jv16 PowerTools Zarządzanie Rejestrem Windows 98/Me/2000/XP 29,95 USD www.jv16.org
RegCleaner Zarządzanie Rejestrem Windows 98/Me/2000/XP freeware www.321download.com/LastFreeware
Advanced System Optimizer Dostrajanie systemu Windows 98/Me/2000/XP 35,96 USD www.systweak.com
DoctorTweak XP Dostosowanie systemu do własnych potrzeb Windows XP freeware www.ficproducts.com
Tweak XP Dostrajanie systemu Windows XP 44,95 USD www.totalidea.com
Tweak UI for Windows XP Dostrajanie systemu Windows XP freeware www.microsoft.com
ERUNT Kopia zapasowa oraz optymalizacja Rejestru Windows NT/2000/XP freeware www.larshederer.homepage.t-online.de/erunt/
Resplendent Registrar Rozbudowany edytor Rejestru Windows 98/Me/2000/XP 44,95 USD www.resplendence.com
RegSupreme Zarządzanie Rejestrem Windows 98/Me/2000/XP 12,95 USD www.macecraft.com
Regmon Monitor Rejestru Windows 9x/Me/NT/2000/XP freeware www.sysinternals.com
Magic Tweak Tuning Windows Windows2000/XP 29,95 USD www.magictweak.com