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.0 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:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
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ą na forum
Natomiast poniżej zobaczcie
praktyczne wykorzystanie metody do trywialnego zajęcia czyli odświeżenia ikon:P
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
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.0 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
Rejestrem. Podobnie jak wyżej i tu zapoznamy się z metodą tym razem GetRegistryValue, której
kod widzimy poniżej:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
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 pobrac interesująca nas wartość z podklucza i warośc ta jest zwracana w wyniku, ale ....
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 Powierz Rozmiar i mały textbox gdzie będzie pobrana wartość
prezentowana
No chyba tyle umiecie sami zrobic prawda ?? no to dobrze a teraz suchy kod :
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć 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 ..