Ohjelmointi

Windows-rekisterin käyttäminen C #: n avulla

Microsoft .Net antaa sinun käyttää Windows-rekisteriä ohjelmallisesti tietojen tallentamiseksi ja noutamiseksi. Windows-rekisteri on hierarkkinen tietokanta, joka koostuu kokoelmasta avaimia, aliavaimia, ennalta määritettyjä avaimia, nokkosihottimia ja arvotietoja ja jota voidaan käyttää järjestelmäkohtaisten tai sovelluskohtaisten tietojen tallentamiseen. MSDN toteaa: "Rekisteri toimii keskusjärjestelmän tietovarastona käyttöjärjestelmälle ja tietokoneen sovelluksille."

Voit hyödyntää Windows-rekisteriä tallentaaksesi sovellusten määritysten metatiedot, jotta voit tarvittaessa hakea ne myöhemmin.

Windows-rekisteri tallentaa seuraavan tyyppisiä tietoja hierarkkisella tavalla.

  1. Käyttäjäprofiilin tiedot
  2. Järjestelmän laitteistotiedot
  3. Ominaisuusasetukset
  4. Tietoja järjestelmään asennetuista ohjelmista

Huomaa, että sinun on oltava erityisen varovainen käsitellessäsi Windows-rekisteriä. On suositeltavaa varmuuskopioida rekisteri ennen muutosten tekemistä, jotta voit palauttaa muutokset tarvittaessa. Voit luoda varmuuskopion Windows-rekisteristäsi noudattamalla näitä ohjeita.

  1. Valitse Käynnistä-valikosta Suorita
  2. Kirjoita Regedit ja paina Enter aloittaaksesi Windowsin rekisterieditorin
  3. Napsauta nyt Tiedosto -> Vie
  4. Määritä nimi Tallenna nimellä -valintaikkunassa
  5. Vie kaikki rekisteritiedot valitsemalla tietty haara tai Kaikki-vaihtoehto
  6. Napsauta Tallenna

Rekisteritietosi tallennetaan .reg-tiedostoon, jolla on määrittämäsi nimi. Nyt voit turvallisesti käsitellä rekisteritietokantaa ohjelmallisesti.

Windows-rekisterin käyttäminen C #: ssä

Voit lukea, kirjoittaa ja poistaa avaimia, avainavaimia ja arvoja ohjelmallisesti Windowsin rekisteristä. Voit katsoa, ​​että rekisteriavaimet ovat Windows-järjestelmän kansioita. Huomaa, että avaimella voi olla alinäppäimiä - samalla tavalla kuin kansiossa voi olla alikansioita sen sisällä. Jos haluat työskennellä Windowsin rekisterin kanssa C #: n avulla, voit hyödyntää Microsoft.Win32-nimiavaruuden rekisteriluokkaa.

Kaivetaan nyt koodiin. Tässä osiossa tutkitaan, kuinka voimme luoda, lukea tai poistaa aliavain Windows-rekisteristä käyttämällä C # -toimintoa.

Voit luoda uuden aliavain hyödyntämällä CreateSubKey-menetelmää alla olevan kuvan mukaisesti.

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

CreateSubKey-menetelmä luo uuden aliavain ja palauttaa sen - palautustyyppi on RegistryKey. Seuraava koodinpätkä osoittaa, kuinka voit luoda uuden nimisen aliavain ja tallentaa avaimen arvot sen sisälle.

käyttämällä (RegistryKey-avain = Registry.CurrentUser.CreateSubKey (@ "OHJELMISTO \"))

           {

key.SetValue ("Avain 1", "Arvo 1");

key.SetValue ("Avain 2", "Arvo 2");

sulje ();

           }  

Seuraavaa menetelmää voidaan käyttää lukemaan arvo aliavain.

staattinen merkkijono ReadSubKeyValue (merkkijono aliavain, merkkijonoavain)

       {

merkkijono str = merkkijono.Tyhjä;

käyttämällä (RegistryKey registerKey = Registry.CurrentUser.OpenSubKey (subKey))

           {

jos (registerKey! = null)

               {

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

registerKey.Close ();

               }

           }

paluu str;

       }

ReadSubKeyValue-menetelmä hyväksyy aliavain ja avaimen parametrina ja palauttaa arvon siitä. Näin voit soittaa ReadSubKeyValue-menetelmään.

staattinen void Main (merkkijono [] args)

       {

merkkijono subKey = @ "OHJELMISTO \";

merkkijono str = ReadSubKeyValue (aliavain, "avain 1");

Console.WriteLine (str);

Konsoli.Lue ();

       }

Voit myös poistaa aliavain staattisella DeleteSubKey-menetelmällä. Seuraava koodiluettelo kuvaa, miten voit tehdä tämän.

staattinen bool DeleteKey (merkkijono KeyName)

       {

yrittää

           {

Registry.CurrentUser.DeleteSubKey (KeyName);

palaa tosi;

           }

saada kiinni

           {

return false;

           }

       }

Yllä oleva menetelmä palauttaa arvon tosi, jos aliavain poisto onnistuu, muuten väärä. Voit halutessasi tarkistaa, onko aliavain olemassa, ennen kuin yrität poistaa sen - siten heitettävien poikkeusten muutokset ovat vähäisiä. Jätän sinun muokata yllä olevaa koodia tämän muutoksen sisällyttämiseksi.

Voit myös hakea kaikki tietyn avaimen aliavaimet käyttämällä RegistryKey-luokan GetSubKeyNames-menetelmää. Seuraava koodinpätkä kuvaa, miten tämä voidaan saavuttaa.

staattinen luettelo GetChildSubKeys (merkkijonoavain)

       {

Lista lstSubKeys = uusi Lista ();

yrittää

          {

käyttämällä (RegistryKey registerKey = Registry.CurrentUser.OpenSubKey (avain))

               {

jos (! (registerKey == null))

                   {

merkkijono [] temp = registerKey.GetSubKeyNames ();

foreach (merkkijono str lämpötilassa)

                       {

lstSubKeys.Add (str);

                       }

                   }

               }

           }

saada kiinni

           {

// Kirjoita mukautettu poikkeusten käsittelykoodi tähän

           }

paluu lstSubKeys;

       }

Jos haluat käyttää GetChildSubKeys-menetelmää ja hakea tietyn avaimen kaikki aliavain, voit kirjoittaa seuraavan koodin.

Luettelo lstSubKeys = GetChildSubKeys (aliavain);

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