Windows - Fájlkeresési útvonal helye és megváltoztatása programból

forráskód letöltése
A feltelepített alkalmazások gyakran megváltoztatják a Windows keresési útvonalát (Path), ezt megtehetjük mi is, de nem biztos, hogy mindig az autoexec.bat átírása a legjobb megoldás. Cikkünkben mutatunk egy példát a regisztrációs adatbázisban történő átíráshoz és egy VBScriptet, amelyre rákattintva (vagy programból lefuttatva) ezt meg is valósítja. Grafikus felületen Windows 2000 alatt a Vezérlőpult > Rendszer (WIN+PAUSE) > Speciális > Környezeti változók > Rendszerváltozók > Path > Szerkesztés (Control Panel > System > Advanced > Environment Variables > System variables > Path > Edit) útvonalon elérhető mezőben lehet átszerkeszteni az útvonalat.

A regisztrációs adatbázisban ezt három helyen találjuk meg:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
mappában található "Path" változóban és a " CurrentControlSet" helyére behelyettesítve a "ControlSet001" és "ControlSet002" helyeken. Gyakorlatilag mindegy, hogy melyikben hajtjuk végre a változtatást, ugyanarra az eredményre vezet. Ugyanis a másik két helyen is megjelenik az új érték.
Típusa: REG_EXPAND_SZ ("Karakterláncsor"), ilyet a "REGEDT32" nevű programmal lehet létrehozni. Tartalma a rendszer keresési útvonalában szereplő mappák sora, egymástól pontosvesszővel (";") elválasztva.

Ha programunknak szüksége van bizonyos fájlok eléréséhez a keresési útvonalra, de nem kínál megfelelő megoldást ezen fájlok meglévő útvonalon található mappákban való elhelyezése, akkor a célszerű a Registry Path sztringjéhez hozzáfűzni a sajátunkat.

VBScript-ből így lehetséges:
Set Sh = CreateObject("WScript.Shell")
key =  "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\"

MyPath = Sh.RegRead(key + "Path")
MyPath = MyPath + ";c:\pic"

Sh.RegWrite key + "Path", MyPath

Definiáltunk egy "key" változót, amiben megadtuk a "Path" elérési útvonalát a regisztrációs adatbázison belül és egy "MyPath"-t amibe beolvassuk a meglévő "Path" értékét, ehhez hozzáadjuk a sajátunkat (példánkban a "c:\pic" könyvtárat) és visszaírjuk az új értéket a Registry-be.
Kiolvasáshoz a "RegRead" metódust használjuk, egyetlen paraméter szükséges hozzá és ez az olvasás helye.
Az írást a "RegWrite" metódussal tudjuk elvégezni, itt két paraméter lehetséges: a HOVA (key+"Path") és a MIT (MyPath).

Ha rákattintunk a szkript-re vagy saját alkalmazásunkból meghívjuk, végrehajtódik a hozzáfűzés, "hangtalanul" minden egyéb üzenet nélkül. Nem marad más dolgunk, mint újraindítani a számítógépet, hogy betöltődjenek az új értékek és végeztünk is.