Programovanie

Ako získať prístup do registra Windows pomocou C #

Microsoft .Net vám umožňuje programový prístup k registru Windows na ukladanie a načítanie údajov. Register Windows je hierarchická databáza, ktorá pozostáva zo zbierky kľúčov, podkľúčov, preddefinovaných kľúčov, úľov a položiek hodnôt a môže byť použitá na ukladanie údajov špecifických pre systém alebo aplikáciu. MSDN uvádza: „Register slúži ako centrálne úložisko informácií pre operačný systém a aplikácie v počítači.“

Môžete využiť register Windows na ukladanie metadát konfigurácie vašich aplikácií, aby ste ich v prípade potreby mohli neskôr načítať.

Register Windows ukladá nasledujúce typy informácií hierarchicky.

  1. Informácie o profile používateľa
  2. Hardvérové ​​informácie o vašom systéme
  3. Nastavenia majetku
  4. Informácie o nainštalovaných programoch vo vašom systéme

Upozorňujeme, že pri manipulácii s registrom systému Windows by ste mali byť mimoriadne opatrní. Pred vykonaním akýchkoľvek zmien je vhodné zálohovať váš register, aby ste ich v prípade potreby mohli vrátiť späť. Podľa týchto pokynov môžete vytvoriť zálohu svojho registra Windows.

  1. V ponuke Štart vyberte príkaz Spustiť
  2. Zadajte príkaz Regedit a stlačením klávesu Enter vyvolajte editor databázy Registry systému Windows
  3. Teraz kliknite na Súbor -> Exportovať
  4. V dialógovom okne „Uložiť ako“ zadajte názov
  5. Vyberte konkrétnu vetvu alebo možnosť „Všetky“, aby ste exportovali celé informácie z registra
  6. Kliknite na tlačidlo Uložiť

Informácie o vašom registri sa uložia do súboru .reg s menom, ktoré ste zadali. Teraz môžete programovo manipulovať s databázou registrov.

Práca s registrom Windows v C #

Z Registra Windows môžete programovo čítať, zapisovať a mazať kľúče, podkľúče a hodnoty. Môžete zvážiť, že kľúče registra sú priečinky vo vašom systéme Windows. Upozorňujeme, že kľúč môže mať podkľúče - rovnakým spôsobom môže priečinok obsahovať podpriečinky, ktoré obsahuje. Ak chcete pracovať s registrom Windows pomocou C #, môžete využiť výhody triedy Registry v mennom priestore Microsoft.Win32.

Poďme teraz kopať do nejakého kódu. V tejto časti preskúmame, ako môžeme vytvoriť, prečítať alebo vymazať podkľúče z registra Windows pomocou C #.

Ak chcete vytvoriť nový podkľúč, môžete využiť metódu CreateSubKey, ako je uvedené nižšie.

Registry.CurrentUser.CreateSubKey (@ "SOFTWARE \");

Metóda CreateSubKey vytvorí nový podkľúč a vráti ho - návratový typ je RegistryKey. Nasledujúci úryvok kódu ukazuje, ako môžete vytvoriť nový podkľúč s názvom a uložiť v ňom kľúčové hodnoty.

pomocou (kľúč RegistryKey = Registry.CurrentUser.CreateSubKey (@ "SOFTWARE \"))

           {

key.SetValue ("Kľúč 1", "Hodnota 1");

key.SetValue ("Kľúč 2", "Hodnota 2");

key.Close ();

           }  

Na načítanie hodnoty z podkľúča je možné použiť nasledujúcu metódu.

statický reťazec ReadSubKeyValue (podkľúč reťazca, kľúč reťazca)

       {

string str = string.Empty;

pomocou (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey (subKey))

           {

if (registryKey! = null)

               {

str = registryKey.GetValue (kľúč). ToString ();

registryKey.Close ();

               }

           }

návrat str;

       }

Metóda ReadSubKeyValue prijíma podkľúč a kľúč ako parameter a vracia z nich hodnotu. Tu je príklad, ako môžete zavolať metódu ReadSubKeyValue.

static void Main (reťazec [] args)

       {

string subKey = @ "SOFTWARE \";

string str = ReadSubKeyValue (subKey, "Kľúč 1");

Console.WriteLine (str);

Console.Read ();

       }

Subkľúč môžete tiež odstrániť pomocou statickej metódy DeleteSubKey. Nasledujúci zoznam kódov ilustruje, ako to môžete urobiť.

static bool DeleteKey (reťazec KeyName)

       {

skús

           {

Registry.CurrentUser.DeleteSubKey (KeyName);

návrat pravdivý;

           }

chytiť

           {

návrat nepravdivý;

           }

       }

Vyššie uvedená metóda vráti hodnotu true, ak je odstránenie podkľúča úspešné, v opačnom prípade false. Možno budete chcieť skontrolovať, či podkľúč existuje, skôr ako sa ho pokúsite odstrániť. Takto sú zmeny vyvolaných výnimiek minimálne. Nechám na vás, aby ste vyššie uvedený kód upravili tak, aby sa táto zmena mohla uskutočniť.

Všetky podkľúče konkrétneho kľúča môžete tiež načítať pomocou metódy GetSubKeyNames triedy RegistryKey. Nasledujúci úryvok kódu ilustruje, ako je to možné dosiahnuť.

statický zoznam GetChildSubKeys (kľúč reťazca)

       {

Zoznam lstSubKeys = nový Zoznam ();

skús

          {

pomocou (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey (kľúč))

               {

if (! (registryKey == null))

                   {

string [] temp = registryKey.GetSubKeyNames ();

foreach (string str in temp)

                       {

lstSubKeys.Add (str);

                       }

                   }

               }

           }

chytiť

           {

// Sem napíš svoj vlastný kód na spracovanie výnimiek

           }

vrátiť lstSubKeys;

       }

Ak chcete použiť metódu GetChildSubKeys a načítať všetky podkľúče konkrétneho kľúča, môžete napísať nasledujúci kód.

Zoznam lstSubKeys = GetChildSubKeys (subKey);