Visual C# — Rejestr systemowy…

Visual C# — Rejestr systemowy…
Razem głosów: 4 co stanowi: 95% całości.

visual-studio-logo-618x350

Dziś pobawimy się trochę rejestrem w sumie nie będzie to nic wielkiego
i ograniczymy się tylko do odczytu i zapisu nieszkodliwych kluczy
tak by wszelcy C&P nie popsuli sobie systemu. Niniejszym jednak za złe wykorzystanie
kodów i niewłaściwe operacje na REJESTRZE —->> NIE ODPOWIADAM !

—————————————————————————————–
Ci co chcą czytać mogą przejść dalej inni niech sobie odpuszczą !!
—————————————————————————————–

1.  Zapisywanie wartości do rejestru

Nasz przykład nie będzie specjalnie wysokich lotów ale pokarze jak zapisywać wartości
do kluczy na przykładzie klucza odpowiedzialnego za pokazywanie icon na pulpicie.

W celu zapisu wartości do określonego klucza użyjemy funkcji SetRegistryValue , która
znajduje się w klasie RegistryTools – służy ona do wprowadzania wartości do kluczy
Rejestru , a wygląda tak:

Funkcja jest prosta ale trzeba sie z nią obchodzić delikatnie i rozumieć dlatego co nieco ją omówię:)

Dosyć istotny jest parametr hive jest wskaźnikiem do cześci rejestru w której będzie przeprowadzone
wyszukiwanie w tym miejscu możemy zastosować metody :

Registry.ClassesRoot,
Registry.CurrentConfig,
Registry.CurrentUser,
Registry.DynData,
Registry.LocalMachine
lub
Registry.PerformanceData

Wybrana metoda tworzy podklucz roboczy z podklucza wewnątrz hive. Takie niby zabezpieczenie wykonywanych operacji, natomiast parametr OpenSubKey wskazuje, że metoda jest konieczna do wykonania zapisy w kluczu rejestru.

W następnej kolejności metoda użyje na podkluczu SetValue aby ustawić nową wartość i dokona zamknięcia klucza.

Prawda ze proste ?? Nie ?? No to trzymajcie się z daleka od rejestru.
Teraz trochę praktyki. Jak utworzyć formę z przyciskiem nie będę pisał ponownie
więc ci co nie wiedzą jak niech poszukają. Natomiast poniżej zobaczcie
praktyczne wykorzystanie metody do trywialnego zajęcia czyli odświeżenia ikon :P

Kod jak widać jest banalnie prosty i nie robi nic szczególnego czyli:
Pobiera aktualny rozmiar icon pulpitu z rejestru , następnie modyfikuje wartość klucza
dodając 1 do rozmiaru i zapisuje ją (widać powiększenie ikon) dzięki użyciu funkcji SendMessageTimeout API , która jest dostarczana do wszystkich okien wyższego poziomu.
Gdy wszystko zostanie dostosowane do nowej wartości następuje odwołanie czyli przywrócenie rozmiaru ikon i ponowne poinformowanie Okien.

Banalne można tej metody używać do modyfikacji dowolnych kluczy rejestru ale róbcie to z głową. Jak coś w ferworze walki sobie popsujecie to znajdzie się kilku co chętnie wam naprawią :)

———————————————————————————————–

2. Odczyt wartości z klucza w rejestrze

Odczyt wartości jest bardzo podobny do powyższego zapisu dzięki metodom zdefiniowanym w klasie RegistryTools, która jak wspomniałem zawiera statyczne metody służące do interakcji z Rejestrem. Podobnie jak wyżej i tu zapoznamy się z metodą tym razem GetRegistryValue, której kod widzimy poniżej:

wiele zmian tu niema w porównaniu z powyższym. Hive robi dokładnie to samo operując
na tych samych metodach:

Registry.ClassesRoot,
Registry.CurrentConfig,
Registry.CurrentUser,
Registry.DynData,
Registry.LocalMachine
Registry.PerformanceData

Tak samo tworzony jest podklucz, ale metoda OpenSubKey tym razem wskazuje że metoda nie wymaga zapisu do podklucza. Następnie wykorzystana jest metoda GetValue pozwalająca pobrać interesująca nas wartość z podklucza i wartość ta jest zwracana w wyniku, ale …. ważne jest to i powinniście zwrócić uwagę na to że metoda GetValue zwraca wartość „obiektu”. Jest to istotne gdyż różne ustawienia rejestru mają różne typy danych przez co kod wywołujący jest odpowiedzialny za konwersję „obiektu” do właściwego typu danych.
Tymczasem zróbcie sobie nową aplikacje okienkową opartą o formularze CLR gdzie umieścić możecie jeden przycisk np. o nazwie Pobierz Rozmiar i mały textbox gdzie będzie prezentowana pobrana wartość :)

No chyba tyle umiecie sami zrobic prawda ?? no to dobrze a teraz suchy kod :

To wszystko …. ?? nie nie jeszcze pokrótce omówimy działanie podle skomplikowanego powyższego kodu który to wykorzystuje metodę GetRegistryValude do uzyskania dostępu do wartości przechowywanej w gałęzi:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\Shell Icon Size

oraz metodę ToString do konwersji „obiektu” na łańcuch i wyświetlenie go w naszym textboxie:)

Miłej Zabawy z rejestrem ..

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay