Stronę najlepiej oglądać w rozdzielczości 1280x1024, chociaż i pod 1024x786 też powinna wyglądać w miarę dobrze. Przy 800x600 będzie trzeba się sporo poprzewijać.

Gościmy

Naszą witrynę przegląda teraz 23 gości 

Współpraca z rejestrem Windows w C#
(6 głosów, średnia ocena 4.33 na 5)
C# (sharp)
środa, 08 lipca 2009 16:08

W Windows istnieje bardzo wygodny sposób przechowywania ustawień konfiguracyjnych programu w rejestrze systemowym. Rejestr systemowy to taka centralna baza danych, dostępna dla wszystkich programów, w której gromadzona są informacje o komputerze oraz poszczególnych programach. W tym artykule napiszę w jaki sposób napisać program współpracujący z rejestrem pod C#.

Nie będę wdawał się w szczegóły opisujące rejestr, można je znaleźć w wielu miejscach w internecie, opiszę jedynie sam sposób pracy.

Najpierw upewnijmy się, iż posiadamy odpowiednie wpisy w miejscu definiowania przestrzeni nazw.
 

using Microsoft.Win32;

 

Aby móc pracować z rejestrem musimy otworzyć odpowiedni klucz z którym będziemy pracować. Aby to zrobić musimy skorzystać z klasy Registry. Wykonujemy więc :
 

RegistryKey rejestr = Registry.CurrentUser.OpenSubKey("Software\\miotk.eu\\SlepyLos");

W ten sposób otworzyliśmy dostęp do klucza "Software\miotk.eu\SlepyLos" w gałęzi HKEY_CURRENT_USER.

Aby otwierać klucze w innych gałęziach używamy :
 

RegistryKey rejestr = Registry.ClassesRoot.OpenSubKey("shell\\open"); // dla gałęzi HKEY_CLASSES_ROOT
RegistryKey rejestr = Registry.CurrentConfig.OpenSubKey("Software\\Microsoft\\windows"); // dla gałęzi HKEY_CURRENT_CONFIG
RegistryKey rejestr = Registry.DynData.OpenSubKey("SOFTWARE\\Microsoft");  // dla gałęzi HKEY_DYN_DATA
RegistryKey rejestr = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft");  // dla gałęzi HKEY_LOCAL_MACHINE
RegistryKey rejestr = Registry.Users.OpenSubKey("S-1-5-18\\Software\Microsoft"); // dla gałęzi HKEY_USERS

Oczywiście wartości kluczy są przykładowe.

 

W ten sposób otworzyliśmy klucz w trybie do odczytu. Aby móc zapisywać lub kasować wartości musimy otworzyć go w trybie zapisu. Aby to zrobić otwieramy klucz z parametrem "true" po nazwie klucza, np :
 

RegistryKey rejestr = Registry.CurrentUser.OpenSubKey("Software\\miotk.eu\\SlepyLos",true);

 

Jak już klucz został otwarty, to możemy wykonywać na tym kluczu operacje :

1. Dodanie wartości :
 

rejestr.SetValue("wersja", "1.0");

 

2. Odczyt wartości :
 

wartosc = rejestr.GetValue("wartosc");

 

3. Skasowanie wartości :
 

rejestr.DeleteValue("wartosc");
 

Na koniec zamykamy otwarty klucz :
 

rejestr.Close();

W ten sposób wykonywaliścy pracę na wartościach rejestru. Oczywiście podobnie działamy na poszczególnych kluczach. Aby sprawdzić, czy klucz istnieje w systemie  i jeżeli nie istnieje to go dodać, wykonujemy :
 

1. RegistryKey rejestr = Registry.CurrentUser.OpenSubKey("Software\\miotk.eu\\SlepyLos");
2. if (rejestr == null) // Jeżeli nie istnieje to utworzenie nowego
3. {
4. RegistryKey rejestrNew = Registry.CurrentUser.CreateSubKey("Software\\miotk.eu\\SlepyLos");
5. }


 

W linii 1. próbujemy otrzorzyć klucz. W linii 2. sprawdzamy, czy się to nie udało. Jeżeli nie, to w linii 4. dodajemy klucz do rejestru.

 

Aby usunąć klucz z rejestru wykonujemy :
 

Registry.CurrentUser.DeleteSubKey("Software\\miotk.eu\\SlepyLos");

 

Dla ułatwienia istnieje też metoda na usunięcie całego drzewa kluczy :
 

Registry.CurrentUser.DeleteSubKeyTree("Software\\miotk.eu\\SlepyLos");

 

I to by było na tyle z podstaw obsługi rejestru systemowego Windows w C#.

 

 

Komentarze  

#3 pablo pączeirro
Super!! :lol:
| Cytować
#2 Fu.ck_Anonim
Nie dziala Ci bo nie umiesz uzywac tutoriali. ;]Ctrl+c i ctrl+v nie działa to juz beczy ! Pomysl troche.
ps. bardzo przydatny tutek dzieki.
| Cytować
#1 Anonim
Co to za lekcja C#?
Żadne polecenie mi nie działa!!!
| Cytować

Dodaj komentarz