Cikkünkhöz mellékelve megtalálhatók a példákban szereplo szkriptek:
"ComPorts.vbs" - Megjeleníti a képernyon az operációs rendszer által felismert soros portokat.
"Keyboards.vbs" - Megjeleníti a képernyon az operációs rendszer által felismert billentyuzetet.
"ScreenSaver.vbs" - Megjeleníti a képernyovédok fobb paramétereit: név, be van-e kapcsolva, mennyi ido után indul el és védett-e jelszóval.
Az SQL nyelv leggyakrabban használt parancsával kezdjük. Gyakorlatilag az összes lekérdezés ezzel kezdodik. Szintaxisa a következoképpen írható le:
A "honnan" jelenti a használandó adatbázist. A "mit" elem mindig a lekérdezendo adatbázis szerkezetétol függ, annak egy mezoje, adata. Több "mit" is megadható egymástól vesszovel elválasztva. Ha az adott adatbázis minden mezojét bele akarjuk vonni a lekérdezésbe, használjuk a "*" helyettesíto karaktert. És ezzel eljutunk a klasszikus SQL parancshoz:
Nézzük mit jelent mindez a gyakorlatban
A WMI Win32 osztályai között létezik egy "Win32_Keyboard" nevu. Feladata, hogy az operációs rendszerbe telepített billentyuzetekrol szolgáltasson információt. Van többek között egy "Description" nevu, sztring típusú tulajdonsága, ahol a billentyuzet nevérol tárolódik egy rövid leírás. Ez jelenik meg az Eszközkezeloben (Device Manager) is. Írjunk egy szkriptet, kérdezzük le a "Win32_Keyboard" osztály összes tulajdonságát és ezek közül jelenítsük meg a "Description" tartalmát. A lekérdezésben a "mit" helyére a "*" karakter kerül, a honnan helyére pedig a "Win32_Keyboard". Lehet, hogy több billentyuzet is van telepítve (bár nem mindennapi eset), ezért kérdezzük le egy ciklussal az osztály minden egyes példányát. Hozzunk létre egy "Text" nevu változót, inicializáljuk üres sztringnek (Text=""). Minden telepített billentyuzet esetén adjuk hozzá saját magát, a "Description" tartalmát és egy újsor karaktert (Chr (13)) a változóhoz. Végül az egészet írassuk ki a képernyore.
Text=""
for each Keyb in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Keyboard")
Text = Text & Keyb.Description & Chr (13)
Next
WScript.Echo Text
Futtatás után megjelennek a rendszerbe telepített billentyuzetek leírásai.
Nézzünk egy másik példát
A "Win32_SerialPort" osztály a rendszerbe telepített soros portokról tárol információt. Kérdezzük le - az elozo szkriptet módosítva - a portok nevét. Most ne úgy járjunk el, hogy lekérjük az összes tulajdonságot és csak a nekünk szükségeset jelenítjük meg, hanem csak egy tulajdonságot kérjünk le. Legyen ez a "Name".
A szkript ebben az esetben így alakul:
Text=""
for each ComPorts in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select Name from Win32_SerialPort")
Text = Text & ComPorts.Name & Chr (13)
Next
WScript.Echo Text
Figyeljük meg az SQL változásait. Nagyobb adatbázisokban gyorsabb és áttekinthetobb kódot eredményez ez a módszer, mint ha a "*" karaktert használjuk.
Harmadik példa
Most a "Win32_Desktop" osztályt használjuk fel. Munkaasztallal kapcsolatos tulajdonságok egy csoportját találjuk meg benne. Például: ikonméretek, kurzor villogási sebesség, háttérkép és képernyovédo beállítások. Nekünk most csak az utóbbira lesz szükségünk. Tudjuk meg az aktuális képernyovédo nevét (ScreenSaverExecutable), hogy be van-e kapcsolva (ScreenSaverActive), hány másodperc üresjárati ido után indul el (ScreenSaverTimeout) és jelszóval védett-e (ScreenSaverSecure). Az elobbi gondolatmenetet folytatva az alábbi szkriptet kapjuk:
Text=""
for each SS in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select ScreenSaverExecutable, ScreenSaverActive, ScreenSaverTimeout, ScreenSaverSecure from Win32_Desktop")
if SS.ScreenSaverExecutable <> "" then
Text = Text & "Képernyovédo neve: " & SS.ScreenSaverExecutable & Chr (13)
Text = Text & "Be van kapcsolva (Igaz/Hamis)? " & SS.ScreenSaverActive & Chr (13)
Text = Text & "Ennyi üresjárati másodperc után indul el: " & SS.ScreenSaverTimeout & Chr (13)
Text = Text & "Jelszóval védett (Igaz/Hamis)? " & SS.ScreenSaverSecure & Chr (13) & Chr (13)
end if
Next
WScript.Echo Text
Ezúttal a lekérdezés SELECT és FROM utasításai között vesszovel elválasztva adtuk meg a tulajdonságokat. Ez független az adat típusától, vegyesen használtunk sztring és logikai értékeket. Késobb a feldolgozás során lesz csak jelentosége, hogy milyen típusú az aktuális adat.
A szkript kimenetét vizsgálva egy érdekes dolgot állapíthatunk meg. Nem csak a rendszerben általunk beállított képernyovédo paramétereit kapjuk vissza, hanem egy másikét is. Ezzel akkor találkozunk, ha elindítjuk a Windows-t, de nem jelentkezünk be (vagy a CTRL+ALT+DEL lenyomására figyelmezteto vagy a felhasználói nevet és jelszót kéro ablakot látjuk). Alapértelmezésben 15 perc után indul el.