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.
- Käyttäjäprofiilin tiedot
- Järjestelmän laitteistotiedot
- Ominaisuusasetukset
- 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.
- Valitse Käynnistä-valikosta Suorita
- Kirjoita Regedit ja paina Enter aloittaaksesi Windowsin rekisterieditorin
- Napsauta nyt Tiedosto -> Vie
- Määritä nimi Tallenna nimellä -valintaikkunassa
- Vie kaikki rekisteritiedot valitsemalla tietty haara tai Kaikki-vaihtoehto
- 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);