Programavimas

Kaip pasiekti „Windows“ registrą naudojant C #

„Microsoft .Net“ leidžia programiškai pasiekti „Windows“ registrą, kad galėtumėte saugoti ir gauti duomenis. „Windows“ registras yra hierarchinė duomenų bazė, kurią sudaro raktų, antrinių raktų, iš anksto nustatytų raktų, avilių ir vertės įrašų rinkinys ir kuri gali būti naudojama sistemos ar programos duomenims saugoti. MSDN teigia: "Registras veikia kaip centrinė operacinės sistemos ir kompiuterio programų informacijos saugykla".

Galite pasinaudoti „Windows“ registro pranašumais, kad išsaugotumėte savo programų konfigūracijos metaduomenis, kad prireikus galėtumėte juos gauti vėliau.

„Windows“ registre hierarchiškai saugoma šių tipų informacija.

  1. Vartotojo profilio informacija
  2. Jūsų sistemos aparatinės įrangos informacija
  3. Nuosavybės nustatymai
  4. Informacija apie jūsų sistemoje įdiegtas programas

Atminkite, kad turėtumėte būti ypač atsargūs dirbdami su „Windows“ registru. Prieš atlikdami pakeitimus, patartina sukurti atsarginę registro kopiją, kad prireikus galėtumėte juos pakeisti. Atlikdami šiuos veiksmus galite sukurti „Windows“ registro atsarginę kopiją.

  1. Pradžioje pasirinkite Vykdyti
  2. Įveskite „Regedit“ ir paspauskite „Enter“, kad iškviestumėte „Windows“ registro rengyklę
  3. Dabar spustelėkite Failas -> Eksportuoti
  4. Dialogo lange „Išsaugoti kaip“ nurodykite pavadinimą
  5. Norėdami eksportuoti visą registro informaciją, pasirinkite konkretų filialą arba parinktį „Visi“
  6. Spustelėkite Išsaugoti

Jūsų registro informacija bus išsaugota .reg faile su jūsų nurodytu vardu. Dabar galite saugiai programiškai valdyti savo registro duomenų bazę.

Darbas su „Windows“ registru C #

Galite programiškai skaityti, rašyti ir ištrinti raktus, antrinius raktus ir reikšmes iš „Windows“ registro. Galite laikyti, kad registro raktai yra aplankai jūsų „Windows“ sistemoje. Atminkite, kad raktas gali turėti antrinius klavišus - panašiai kaip aplanke gali būti antrinių aplankų. Norėdami dirbti su „Windows“ registru naudodami C #, galite pasinaudoti „Microsoft.Win32“ vardų srities „Registry“ pranašumais.

Dabar įsigilinkime į tam tikrą kodą. Šiame skyriuje mes ištirsime, kaip mes galime sukurti, skaityti ar ištrinti dalinius raktus iš „Windows“ registro naudodami C #.

Norėdami sukurti naują antrinį raktą, galite pasinaudoti „CreateSubKey“ metodo pranašumais, kaip parodyta žemiau.

Registry.CurrentUser.CreateSubKey (@ "PROGRAMINĖ ĮRANGA");

Metodas „CreateSubKey“ sukuria naują antrinį raktą ir jį grąžina - grąžinimo tipas yra „RegistryKey“. Šis kodo fragmentas parodo, kaip galite sukurti naują antrinį raktą pavadinimu ir jame išsaugoti rakto vertes.

naudojant [RegistryKey key = Registry.CurrentUser.CreateSubKey (@ "SOFTWARE \"))

           {

key.SetValue („1 raktas“, „1 vertė“);

key.SetValue („2 raktas“, „2 vertė“);

raktas.Uždaryti ();

           }  

Šį metodą galima naudoti norint nuskaityti vertę iš antrinio rakto.

statinė eilutė „ReadSubKeyValue“ (eilutės subKey, eilutės raktas)

       {

eilutė str = eilutė. Tuščias;

naudojant [RegistryKey registerKey = Registry.CurrentUser.OpenSubKey (subKey)]

           {

if (registerKey! = null)

               {

str = registerKey.GetValue (raktas) .ToString ();

registerKey.Close ();

               }

           }

grįžimo str;

       }

Metodas „ReadSubKeyValue“ priima dalinį raktą ir raktą kaip parametrą ir grąžina jo vertę. Štai kaip galite iškviesti „ReadSubKeyValue“ metodą.

static void Main (string [] args)

       {

string subKey = @ "PROGRAMINĖ ĮRANGA";

eilutė str = ReadSubKeyValue (subKey, "1 raktas");

Console.WriteLine (str);

Pultas.Skaitykite ();

       }

Taip pat galite ištrinti antrinį raktą naudodami statinį „DeleteSubKey“ metodą. Šis kodų sąrašas parodo, kaip tai padaryti.

statinis failas „DeleteKey“ (eilutė „KeyName“)

       {

bandyti

           {

Registry.CurrentUser.DeleteSubKey (KeyName);

grįžti tiesa;

           }

pagauti

           {

grąžinti klaidingą;

           }

       }

Pirmiau pateiktas metodas grąžinamas kaip „tiesa“, jei antrinio rakto ištrynimas yra sėkmingas, kitaip klaidingas. Prieš bandydami jį ištrinti, galbūt norėsite patikrinti, ar yra antrinis raktas - tokiu būdu išmetamų išimčių pakeitimai yra minimalūs. Palieku jums pakeisti anksčiau nurodytą kodą, kad šis pakeitimas būtų įtrauktas.

Taip pat galite gauti visus konkretaus rakto antrinius raktus naudodami „RegistryKey“ klasės metodą „GetSubKeyNames“. Šis kodo fragmentas parodo, kaip tai galima pasiekti.

statinis sąrašas „GetChildSubKeys“ (eilutės raktas)

       {

Sąrašas lstSubKeys = naujas sąrašas ();

bandyti

          {

naudojant [RegistryKey registerKey = Registry.CurrentUser.OpenSubKey (raktas)]

               {

jei (! (registerKey == null))

                   {

eilutė [] temp = registerKey.GetSubKeyNames ();

foreach (eilutė str temp)

                       {

lstSubKeys.Add (str);

                       }

                   }

               }

           }

pagauti

           {

// Čia parašykite pasirinktinį išimčių tvarkymo kodą

           }

grąžinti lstSubKeys;

       }

Norėdami naudoti „GetChildSubKeys“ metodą ir gauti visus konkretaus rakto antrinius raktus, galite parašyti šį kodą.

Sąrašas lstSubKeys = GetChildSubKeys (subKey);

$config[zx-auto] not found$config[zx-overlay] not found