C# - Rendszerleíró adatbázis elérése parancsállományból

Windows Script Host lehetőségei 14. rész

forráskód letöltése
Köztudott, hogy mennyire fontos szerepet játszik a Rendszerleíró adatbázis alkalmazásaink konfigurálásában, valamint a rendszer hangolásában. Sorozatunk utolsó részében megvizsgáljuk, milyen módon érhetjük el az adatbázis bejegyzéseit egy script-ből. A mellékelt példában megismerhetjük a szükséges metódusokat, valamint ezek meghívásának módját.
A Rendszerleíró adatbázis eléréshez a WScript objektum segítségével létre kell hoznunk egy példányt a WScript.Shell objektumból. Az objektum három metódusa teszi lehetővé, hogy az adatbázisba tetszőleges mélységben kulcsokat hozzunk létre, tetszőleges értéket tárolva benne.
A mellékelt alkalmazásban egy kulcs-érték pár megadása után a BEÍRÁS gomb segítségével futtatjuk a WSH14.wsf állományt, melynek WRITE egysége végzi el a kulcs létrehozását.
A KIOLVASÁS gombbal a megadott kulcs értékét olvashatjuk ki, felhasználva a parancsállomány READ egységét. A kulcsot mindennemű paraméter megadása nélkül a TÖRLÉS gombbal törölhetjük.
A szükséges objektumot a következőképpen hozzuk létre:
var WSHShell = WScript.CreateObject("WScript.Shell");
Az objektum RegWrite metódusának meghívásával érhetjük el, hogy létrejöjjön a kulcs a megadott értékkel. A metódussal a HKEY_CURRENT_USER gyökérkulcsban helyezünk el egy SoftwareOnline nevű albejegyzést, melynek kulcs-érték párját az alkalmazás Form-ján kell megadni.
WSHShell.RegWrite(mainkey + "SoftwareOnline\\" + inKey, inValue, "REG_BINARY");
A metódus első paramétere a létrehozandó kulcs neve, a második paraméterben kell megadni a bejegyzés értékét, végül a harmadik paraméter a tárolás típusát határozza meg. A lehetséges típusokat a következő táblázat foglalja össze:
Típus Leírás
REG_SZ A tárolt érték típusa karakterlánc.
REG_DWORD A típus szám.
REG_BINARY A tárolt érték bináris formátumú.
REG_EXPAND_SZ Különleges karaktereket tartalmazó string. Például: "%windir%\\calc.exe".
REG_MULTI_SZ A tárolt érték egy karakterlánc-tömb.
A Rendszerleíró adatbázis egy tetszőleges kulcsának értékét a RegRead metódussal kérdezhetjük le. A metódus egyetlen paramétert vár, nevezetesen a kulcs nevét (elérési útvonallal). A metódus visszatérési értéke a bejegyzésben tárolt érték.
var value = WSHShell.RegRead(mainkey + "SoftwareOnline\\" + inKey);
Az adatbázis egy tetszőleges kulcsát a RegDelete függvény képes megszüntetni. A függvény egyetlen paramétere a törlendő kulcs teljes neve. A parancsállományunk DELETE egységében ezt a következőképpen hívjuk meg:
WSHShell.RegDelete(mainkey + "SoftwareOnline\\");

Windows Script Host lehetőségei cikksorozat