Obsługa rejestru systemowego przy pomocy wbudowanych funkcji VB
Obsługa rejestru przy pomocy wbudowanych
funkcji VB
Rejestr systemowy jest
następcą plików ini, gdzie przechowywane były wszystkie informacje o systemie i
zainstalowanych aplikacjach. Rejestr pojawił się już w Windows 3.1, lecz używany był
w marginalnych sytuacjach. Jednak wraz z rozwojem systemu Windows, pliki ini stały się
niewystarczającą skarbnicą przechowywanych informacji. Proste w budowie pliki ini
zostały zastąpione w Windows 95 rejestrem, który umożliwiał przechowywanie informacji
w bardziej rozbudowanej strukturze.
Omawiane funkcje VB, obsługujące
rejestr, mają pewne ograniczenia. Umożliwiają one dostęp tylko do jednej części, w
której mogą tworzyć ograniczoną liczbę poziomów kluczy. Miejsce w rejestrze, w
którym możemy się poruszać za pomocą funkcji VB, kryje się wyłącznie pod kluczem:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
Uwaga:
-
Można tworzyć klucze podrzędne poniżej tego klucza, jeśli jednak jest to
niewystarczające, należy posłużyć się funkcjami Windows API, które częściowo są
omówione w pliku API32_PL.hlp zamieszczonego w dziale API.
-
Przy pomocy regedit.exe można zobaczyć architekturę rejestru. Pamiętać jednak
należy, że zabawa z rejestrem może skończyć się tragicznie. Więc radzę bawić się
nim ostrożnie (mam na myśli osoby, którym brak doświadczenia w tej dziedzinie).Skopiuj gdzieś pliki USER.DAT i SYSTEM.DAT przed zabawą z rejestrem. Jak
być coś uszkodził to podmień te pliki na pliki które skopiowałeś. Dzięki temu
przywrócisz stary rejestr sprzed uszkodzenia (dop. Jelcyn)
Jeśli zaczynasz pracę z
rejestrem, radzę zapoznać się z omawianymi funkcjami, bo przy ich użyciu nie
narozrabiasz w rejestrze, co mogłoby się to skończyć tragicznie dla Twojego systemu.
Twoja aplikacja nie musi znać nazwy tego klucza: HKEY_CURRENT_USER\Software\VB and VBA
Program Settings, bo jak już wspomniałem, klucz ten jest domyślnym kluczem w którym
aplikacja będzie, za pomocą funkcji VB, pracować z rejestrem.
Lista funkcji VB, które umożliwiają pracę z rejestrem:
funkcja
przeznaczenie
DeleteSetting
usuwa klucz wraz z wartością
SaveSetting
dodaje lub aktualizuje klucz (i jego wartość)
GetAllSettings
zwraca listę kluczy i ich wartości
GetSetting
zwraca wartość klucza
Zanim przystąpię do opisu tych funkcji przedstawię wygląd klucza widzianego w
regedit.exe w celu uwidocznienia możliwości tych funkcji:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\KluczAplikacji\KluczSekcji\Klucz
Objaśnienie:
człon
opis
pierwszy człon
Wspomniany wcześniej klucz domyślny
KluczAplikacji
W tym argumencie jako nazwę klucza podaje się przeważnie nazwę aplikacji, w celu
łatwej identyfikacji w rejestrze, zachowując pewne kanony przy wykorzystywaniu rejestru.
Pozwala to na łatwą identyfikację klucza z aplikacją (np. Edytorek).
KluczSekcji
Określa klucz podrzędny, stosowany głównie w celu podzielenia danych ze względu
na przeznaczenie przechowywanych informacji (np. Ustawienia).
Klucz
Nazwa klucza w którym jest przechowywana jego wartość (np. "Zawsze na
wierzchu").
Jeśli przeglądałeś rejestr przy pomocy programu regedit.exe, mam
nadzieję że wszystko stało się jasne. Natomiast gdy są jeszcze jakieś problemy, to w
ich rozwiązaniu powinny pomóc przedstawione poniżej opisy funkcji:
[DeleteSetting] [SaveSetting] [GetAllSettings] [GetSetting]
SaveSetting tworzy lub zapisuje nową wartość klucza.
Składnia:
SaveSetting KluczAplikacji, KluczSekcji, Klucz, Wartość
Składnia tej funkcji składa się z następujących części:
KluczAplikacji
-
w tym argumencie jako nazwę klucza podaje się przeważnie nazwę aplikacji
KluczSekcji -
określa klucz podrzędny
Klucz -
nazwa klucza w którym mamy przechować wartość
Wartość -
wartość klucza
Przykład:
SaveSetting "Kalendarz", "Dziadek", "Urodziny",
"18.05.1914"
Efektem będzie utworzenie / nadpisanie klucza i jego wartości. Wygląd całego klucza
będzie następujący:
HKEY_CURRENT_USER\[...]\Kalendarz\Dziadek\Urodziny
Pod kluczem "Urodziny" będzie przechowywana stosowna data
"18.05.1914"
[DeleteSetting] [SaveSetting] [GetAllSettings] [GetSetting]
GetSetting pobiera wartość klucza.
Składnia:
GetSetting(KluczAplikacji, KluczSekcji, Klucz [,WartośćDomyślna])
Składnia tej funkcji składa się z następujących części:
KluczAplikacji
-
w tym argumencie podajemy nazwę aplikacji
KluczSekcji -
podajemy klucz podrzędny
Klucz -
nazwa klucza którego wartość chcemy odczytać
WartośćDomyślna -
wartość domyślna która jest zwracana w razie niepowodzenia np. gdy nie istnieje
klucz którego wartość chcemy odczytać
Przykład:
Label1.Caption = GetSetting("Kalendarz", "Dziadek",
"Urodziny", 0)
Przedstawiona linia kodu odczytuje z rejestru wartość klucza:
HKEY_CURRENT_USER\[...]\Kalendarz\Dziadek\Urodziny
Efektem działania tej linii kodu jest przypisanie wartości
"18.05.1914" do Caption kontrolki Label1. W razie niepowodzenia zostanie
zwrócone 0.
[DeleteSetting]
[SaveSetting] [GetAllSettings] [GetSetting]
GetAllSettings pobiera z klucza podrzędnego KluczSekcji wszystkie klucze i ich wartości.
Składnia:
GetAllSettings(KluczAplikacji, KluczSekcji)
Składnia tej funkcji składa się z następujących części:
KluczAplikacji
-
w tym argumencie podajemy nazwę aplikacji
KluczSekcji -
podajemy klucz podrzędny z którego będziemy czytać wszystkie zawarte w nim klucze
i ich wartości
Przykład:
Text1.Text = ""
Dim Odczytane As Variant
Dim x As Integer
Odczytane = GetAllSettings("Kalendarz", "Dziadek")
For x = 0 To UBound(Odczytane)
Text1.Text = Text1.Text &
Odczytane(x, 0) _
& vbTab & "
=" & Odczytane(x, 1) & vbNewLine
Next x
Tu przeanalizuj kod programu. Jeśli nie jesteś w stanie przewidzieć
co będzie efektem jego działania, to stwórz nowy projekt w VB i dodaj go do zdarzenia
Command1_Click przycisku. Pamiętaj aby kontrolka Text1 miała ustawioną właściwość
MultiLine na True. Najważniejsze jest to, aby odpowiednie klucze były zapisane w
rejestrze.
[DeleteSetting]
[SaveSetting] [GetAllSettings] [GetSetting]
DeleteSetting usuwa klucz podrzędny KluczSekcji lub klucz przechowujący wartość.
Składnia:
DeleteSetting KluczAplikacji, KluczSekcji [,Klucz]
Składnia tej funkcji składa się z następujących części:
KluczAplikacji
-
w tym argumencie podajemy nazwę aplikacji
KluczSekcji -
podajemy klucz podrzędny. Jeśli nie podamy argumentu Klucz,
wówczas zostanie usunięty ten klucz
Klucz -
argument opcjonalny i określa nazwę klucza który chcemy usunąć. Nie podając tego
argumentu zostanie usunięty KluczSekcji
Przykład:
DeleteSetting "Kalendarz", "Dziadek", "Urodziny"
Efektem będzie usunięcie klucza i jego wartości. Wygląd całego klucza będzie
następujący:
HKEY_CURRENT_USER\[...]\Kalendarz\Dziadek\
Uwaga!
Jeśli będziemy chcieli usunąć nieistniejący klucz program wygeneruje błąd.
[DeleteSetting] [SaveSetting]
[GetAllSettings] [GetSetting]
Uwaga:
Opis ma status freeware - możesz go przekazywać innym,
wstawić go na swoją stronę z zaznaczeniem autorstwa.
Opis nie ma charakteru public domain - nie możesz dokonywać w nim zmian.
KaDwa
www.vbtools.prv.pl
Wyszukiwarka
Podobne podstrony:
ART2 (10)ART2 (8)ART2 (15)ART2 (2)ART2 (12)ART2 (18)art2ART2 (3)ART2 (14)art2 (16)ART2 (13)art2art2więcej podobnych podstron