art2








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)
art2
ART2 (3)
ART2 (14)
art2 (16)
ART2 (13)
art2
art2

więcej podobnych podstron