Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lis 2024, o 17:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 2 mar 2014, o 16:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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:

Składnia: [ Pobierz ] [ Ukryj ]
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

Składnia: [ Pobierz ] [ Ukryj ]
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:

Składnia: [ Pobierz ] [ Ukryj ]
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 :

Składnia: [ Pobierz ] [ Ukryj ]
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 ..

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 23:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

Kolejna cegiełka ;) ... kurczę a ja wciąż się zbieram i zbieram za ten C# .... no ale jak się zabiorę to już będzie na forum kupa cegieł :lol: Dzięki za materiał.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 14:42 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lut 2014
Posty: 16
Pomógł: 1

A to złośliwiec jeden z kolegi :) Faktycznie trzeba się trochę zastanowić i pijawkom łatwo nie będzie :)
Jak zawsze na temat fajny arcik . Dziękuję :) Mam tylko nadzieję że kolega będzie dalej pisał

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 15:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

mirekk36 napisał(a):
kurczę a ja wciąż się zbieram i zbieram za ten C# .... no ale jak się zabiorę to już będzie na forum kupa cegieł


Może wystarczy na budowę garażu małego ?? :)

mira_aT napisał(a):
Dziękuję Mam tylko nadzieję że kolega będzie dalej pisał


Niema sprawy jak coś jest warte opisania to się staram opisać, cieszy mnie to ,że komuś się te o "kant"
tematy przydadzą :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO