Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.

Podobné prezentace


Prezentace na téma: "C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí."— Transkript prezentace:

1 C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

2 Co jsou registry ?  Registry (přesněji Windows Registry) jsou databází, do které si Windows ukládají všechna svá nastavení. V registrech najdeme: nastavení týkající se veškerého používaného hardwaru a softwaru nastavení týkající se vzhledu plochy, konkrétních uživatelů atd. Jakmile uživatel provede jakoukoliv změnu v systému prostřednictvím Ovládacích panelů, změnu v asociování souborů, systémových politikách nebo v instalovaném softwaru, tak všechny tyto změny se promítnou zpětně do registrů.  Windows Registry mají tedy pro chod systému zcela zásadní význam.

3 Příkaz - regedit

4 Uložení DB registry a jejich struktura  Uložení souborů s údaji DB registry se mírně liší v závislosti na verzi systému, který používáte, v zásadě je v několika souborech (security.dat, sam.dat, default.dat, …) v systémovém adresáři viz. obr.  Základní strom tvoří šest hlavních "větví" označovaných jako "Handle keys". Jsou to HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_USERS HKEY_CURRENT_USER

5  HKEY_LOCAL_MACHINE informace vztahující se k typu hardwaru počítače a softwaru, který je na něm provozován. informace týkající se bezpečnosti, uživatelských práv a sdílení.  HKEY_CLASSES_ROOT informace nezbytné pro běh aplikací: přípony souborů a asociace mezi aplikacemi a dokumenty Jména všech ovladačů řetězce používané jako ukazatele na text, který reprezentují čísla CLASS ID informace vztahující se k DDE a OLE ikony používané pro aplikace a dokumenty HKEY_CLASSES_ROOT je součástí HKEY_LOCAL_MACHINE. informace se do HKEY_CLASSES_ROOT mapují z HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES.  HKEY_CURRENT_CONFIG aktuální hardwarový profil. data pro tento profil se mapují z HKEY_LOCAL_MACHINE. Pokud systém používá pouze jeden hardwarový profil, což je běžné třeba ve Win95, tak obsah HKEY_CURRENT_CONFIG je stejný jako obsah HKEY_LOCAL_MACHINE\Config\001.

6  HKEY_DYN_DATA informace používané pro řízení hardwaru. Tyto informace se dynamicky zjišťují a nastavují při startu počítače. Jsou uloženy v RAM a nezapisují se na disk.  HKEY_USERS informace o standardních uživatelských nastaveních, uživatelích systému a o aktuálně přihlášeném uživateli.  HKEY_CURRENT_USER informace o aktuálně přihlášeném uživateli. Příslušné informace se do HKEY_CURRENT_USER mapují z HKEY_USERS.

7 Problémy s registry a jejich řešení  jakékoliv jejich poškození může mít pro celý operační systém resp. aplikace v něm nainstalované zcela fatální následky. K poškození registrů může dojít například když: do systému instalujeme nové aplikace a ovladače dojde k hardwarové chybě způsobené např. selháním zařízení (disku, paměti apod.) často instalujeme a odinstalováváme větší množství aplikací instalovaná aplikace obsahuje chyby a špatně modifikuje obsah registrů nastane nevhodný zásah ze strany uživatele  Abychom se vyhnuli těmto a podobným problémům, obsahují Windows různé bezpečnostní mechanismy s jejichž pomocí můžeme těmto událostem předcházet nebo je i zcela vyřešit.  Pro různé tipy pro práci s registry můžete využít například

8 Registry pro vývojáře  Jak vidíte, aplikace a celý systém uchovává některá svá nastavení v systémové DB. Pokud chcete uložit některé informace důležité např. pro start vaší aplikace je vhodné umět ovládat základní činnost související s prací s touto DB  V zásadě vývojář potřebuje pouze dvě činnosti umět přečíst hodnotu z DB a nebo ji zapsat

9 Naše první aplikace – Step by Step  Spusťte na vašem počítači regedit.exe, v příkazové řádce zadejte regedit  v HKEY_LOCAL_MACHINE\SOFTWARE vytvořte vlastní klíč a nazvěte ho "MyTestRegKey"  Vytvořte 2 stringové hodnoty uvnitř tohoto uzlu, pojmenujte je "Name" a "Password", a přiřaďte jim stringové hodnoty - "Guest", "123456".  Porovnejte s obrázkem

10 Step 2 (Metoda pro čtení)  Otevřete C#, vytvořte formulářovou aplikaci „WorkWithRegistry“ přidejte do ní class „MyRegistry“ a doplňte kód metod pro čtení hodnot z vytvořeného klíče

11  Metoda OpenSubKey vrací klíč registry, který je zamčený pro editaci, pokud chceme editovat klíč, musíme použít přetíženou metodu OpenSubKey, která nebere pouze klíč registry, ale také boolean hodnotu určující zda budeme moci editovat co je uvnitř. Viz. Ukázka z helpu :

12 Step 3 – (metoda pro vytvoření hodnoty v Registry)  Použijeme metodu CreateSubKey, na rozdíl od OpenSubKey je ten, že pokud klíč v DB registry neexistuje tak je vytvořen, zatímco OpenSubKey vrací NULL pokud klíč není nalezen.  Na klíči, který je vrácen, můžete nadefinovat nové hodnoty, vytvořit nové podklíče a jim vytvořit nové hodnoty a podklíče atd. :

13 Step 4 – využití vytvořené třídy a demonstrace její činnosti na formuláři  Vytvořte formulář s prvky viz. obrázek a pojmenujte je: btn_LoadRegistry_Click btn_CreateAndLoadRegistry richTextBoxRegistryValues

14 Doplňte kód formuláře private void btn_LoadRegistry_Click(object sender, EventArgs e) { LoadRegistryValues(); } private void LoadRegistryValues() { //vytvořím instanci třídy MyRegistry (lokální) MyRegistry myRegCls = new MyRegistry(); //vytvořím řetězcové pole k načtení výsledků, které //vrací metoda ReadMyTestRegKey třídy MyRegistry string[] RegValues; //vyčistím textbox richTextBoxRegistryValues.Clear(); //načtu do lokální proměnné typu pole řetězců výsledek metody RegValues = myRegCls.ReadMyTestRegKey(); //vrácený výsledek načtu do RichTextBoxu richTextBoxRegistryValues.Lines = RegValues; }

15  Analogicky doplňte funkčnost druhého tlačítka  Zkontrolujte změny v Registry Windows  Ručně změňte hodnotu „Workgroup“ v registry na něco jiného a znovu spusťte program sledujte změny a popište jak program a Vámi naprogramovaná metoda funguje.

16 Závěr Demo příkladu  Naučili jste se základním způsobem pracovat se systémovou DB Windows  Funkcí a možností jak s uvedenou DB pracovat existuje mnohem více a seznam metod a objektů najdete v helpu vývojového nástroje i s ukázkovými příklady použití MSDN - Registry v C#  Zapamatujte si k čemu tato DB slouží a zamyslete se nad praktickým použitím naší aplikace  DB registry windows hraje důležitou roli u nastavení Vašich aplikací a OS

17 ÚKOLY  Dopracujte do vytvořené aplikace metodu objektu MyRegistry, která bude mazat vytvořenou hodnotu „Domain“  Předělejte metody tak, aby cesta ke klíči tzn. k upravované větvi byla předávána vstupním parametrem  Vytvořte jednoduchou aplikaci na změnu jména a hesla, která využije Vámi vytvořený objekt

18 18 Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… Seriály o programování v jazyce C# :


Stáhnout ppt "C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí."

Podobné prezentace


Reklamy Google