
Cikkünkhöz mellékeltük az alábbi szkriptet "VideoCard.vbs" néven. Futtatása a "Start.bat" fájllal történik.
A WMI (Windows Management Instrumentation) szolgáltatás "CIM_VideoController" osztálya kezeli a számítógépben lévő videokártyákat. A CIM (Common Information Model) előtaggal kezdődő osztályok alaposztályok, belőlük vannak származtatva a programokban általánosabban használt osztályok. A hardverközeliség miatt fordulunk hozzájuk, így "egyenesen" a videokártyától tudjuk meg, hogy milyen típusú, mekkora az aktuális felbontás, stb. és nem valamely szolgáltatástól. Ezért nincsenek további feltételei a szkript működésének, nem kell telepíteni semmit, elég maga az operációs rendszer.
Elsőként fel kell venni a kapcsolatot a WMI-al. Tesszük ezt a szkriptet futtató felhasználó hitelesítési adataival ("impersonationLevel = impersonate"). Ezután lekérdezzük a "CIM_VideoController" osztály összes tulajdonságát ("Select * ..."). FOR ciklussal hajtjuk végre a lekérdezést, mert lehet, hogy több videokártya van a gépben.
for each VideoController in GetObject("winmgmts:{impersonationLevel = impersonate}!root/cimv2").ExecQuery ("select * from CIM_VideoController")
A kapott eredményt kiíratjuk a képernyőre, tulajdonságonként szétválogatva őket. Első lesz a "Description" (~leírás), ami egy "barátságos" nevet tárol a hardverről (pl.: NVIDIA GeForce2 MX/MX 400).
WScript.echo "Videokártya: " & VideoController.Description
Következik a kártyán lévő videoprocesszor típusa, majd a jobb láthatóság érdekében beszúrunk egy üres sort.
WScript.echo "Videoprocesszor típusa: " & VideoController.Videoprocessor
WScript.echo
Amire leggyakrabban lehet szükségünk: az aktuális felbontás, színmélység és speciális programoknál esetleg a képernyőfrissítés gyakorisága. Utóbbit már csak érdekességként is ellenőrizhetjük és kiírathatjuk a felhasználónak, hogy például a 85 Hz alatti frekvencia erősen fárasztja a szemet. A pillanatnyi vízszintes felbontás a "CurrentHorizontalResolution", a függőleges a "CurrentVerticalResolution" tulajdonságokban tárolódik. A színmélységet a "CurrentBitsPerPixel" értékeként kapjuk meg. Vegyük figyelembe, hogy 16 bit alatt már csorbulhat a megjelenítés színhűsége. Végül jöjjön a már említett frissítési frekvencia a "CurrentRefreshRate" tulajdonságban.
WScript.echo "Aktuális felbontás: " & VideoController.CurrentHorizontalResolution & " x " & VideoController.CurrentVerticalResolution & " / " & VideoController.CurrentBitsPerPixel & " bit" & " " & VideoController.CurrentRefreshRate & " Hz"
Maradjunk még egy kicsit a képernyő frissítési frekvenciánál. Ha programból állítjuk, tudnunk kell, hogy milyen határok között mozoghatunk. Túl magas értéknél elmegy a kép (a monitor önvédelme), de a régebbi monitorok akár tönkre is mehetnek. Az alacsony érték pedig károsítja a látást, fárasztja a szemet és az idegrendszert. Megoldás: állítsuk be a hardver által elérhető legmagasabb vagy közel legmagasabb frekvenciát (a legmagasabbnál a gyengébb minőségű monitorok homályosabb képet adhatnak).
WScript.echo "Maximális frekvencia: " & VideoController.MaxRefreshRate & " Hz"
WScript.echo "Minimális frekvencia: " & VideoController.MinRefreshRate & " Hz"
WScript.echo
Zárjuk a sort néhány kevésbé fontos paraméterrel: ilyenek a rendszerben az eszközazonosítók.
WScript.echo "PnP eszközazonosító: " & VideoController.PNPDeviceID
WScript.echo "Eszközazonosító: " & VideoController.DeviceID
Ha a "Status" tulajdonság "OK"-tól eltérő értéket ad vissza, valamilyen probléma van az eszközzel.
WScript.echo "Státusz: " & VideoController.Status
Lekérhetjük a videomemória típusát is. A kapott szám a következőket jelenti:
| Kapott érték |
Memória típusa |
| 1 |
Ismeretlen |
| 2 |
Nem meghatározható |
| 3 |
VRAM |
| 4 |
DRAM |
| 5 |
SRAM |
| 6 |
WRAM |
| 7 |
EDORAM |
| 8 |
Burst Synchronous DRAM |
| 9 |
Pipelined Burst SRAM |
| 10 |
CDRAM |
| 11 |
3DRAM |
| 12 |
SDRAM |
| 13 |
SGRAM |
Sajnos a WMI ezen része még nem ismeri a DDR RAM-okat.
WScript.echo "Videomemória típusa: " & VideoController.VideoMemoryType
Végül zárjuk a FOR ciklust.