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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 kwi 2025, o 17:55


    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

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

    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 ] [ Zaznacz wszystko ]
    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 ..

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    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: 27372
    Lokalizacja: Szczecin
    Pomógł: 1043

    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

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

    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ą :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    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