REJ









VBTools - Opis - Funkcje VB do obsługi rejestru




Obsługa rejestru systemowego 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).



          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@poczta.wp.pl
http://strony1.wp.pl/wp/ziebam/




Wyszukiwarka