
Mellékeltünk egy szkriptet "MessageBox.vbs" néven, futtatása után megjelenít egy ablakot a képernyőn három nyomógombbal, várakozik az egyik lenyomására, végül kiírja, hogy melyiket nyomtuk meg.
Szabványos Windows üzenetablakok nem csak a magas szintű programfejlesztői környezetet (Visual Studio .NET, Delphi) használók rendelkezésére állnak, hanem egyszerű VBScript-ekből is elérhetők. Ha nem csak annyit akarunk, hogy megjelenjen egy felirat a képernyőn, akkor mindenképpen érdemes megtanulni a használatukat. Egyetlen függvény meghívásával jeleníthető meg az összes változat, neve: MsgBox.
Nézzük meg a szintaktikáját:
MsgBox (szöveg, gombok, fejléc, helpfájl, context)
Az ablak tartalma
Hozzunk létre egy új fájlt "MessageBox.vbs" néven és írjuk bele az alábbi sort, majd futtassuk a Windows Intézőben (Windows Explorer).
Megjelenik egy ablak "VBScript" fejléccel, az általunk megadott "Hello" felirattal és egyetlen "OK" gombbal. Ha rákattintunk a gombra az ablak bezáródik.
Koncentráljuk a "Hello" feliratra, amit a szintaktikában "szöveg"-ként említettünk. Ez nem más, mint egy maximum 1024 karakterből álló sztring és az ablak szöveges tartalmát adja. Több soros szövegek is megjeleníthetők, ha beépítjük a Chr(13) és Chr(10) karaktereket (kocsi vissza és sorvége) a sztringbe:
MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH")
Gombok, ikonok
Következzenek a gombok, ha nem adunk meg egyet sem, akkor csak az "OK" jelenik meg.
| Konstans |
Érték |
Leírás |
| vbOKOnly |
0 |
"OK" gomb. |
| vbOKCancel |
1 |
"OK" és "Mégsem" ("Cancel") gombok. |
| vbAbortRetryIgnore |
2 |
"Leállítás" ("Abort"), "Ismét" ("Retry") és "Kihagyás" ("Ignore") gombok. |
| vbYesNoCancel |
3 |
"Igen" ("Yes"), "Nem" ("No") és "Mégsem" ("Cancel") gombok. |
| vbYesNo |
4 |
"Igen" ("Yes") és "Nem" ("No") gombok. |
| vbRetryCancel |
5 |
"Ismét" ("Retry") és "Mégsem" ("Cancel") gombok. |
| vbCritical |
16 |
Kritikus hiba ikon megjelenítése. |
| vbQuestion |
32 |
Kérdőjel ikon megjelenítése. |
| vbExclamation |
48 |
Felkiáltójel ikon megjelenítése. |
| vbInformation |
64 |
Információs ikon megjelenítése. |
| vbDefaultButton1 |
0 |
Az első gomb az alapértelmezett. |
| vbDefaultButton2 |
256 |
A második gomb az alapértelmezett. |
| vbDefaultButton3 |
512 |
A harmadik gomb az alapértelmezett. |
| vbDefaultButton4 |
768 |
A negyedik gomb az alapértelmezett. |
| vbApplicationModal |
0 |
Nem folytatódik a szkript futása, amíg a felhasználó be nem zárja az ablakot. |
| vbSystemModal |
4096 |
Az ablak minden más alkalmazás ablaka felett lesz és addig nem folytatódik a szkript futása, amíg a felhasználó be nem zárja. |
A fenti táblázatból látható, hogy a gombok mellett ikonok is megjeleníthetők, illetve dönthetünk arról, hogy az ablak legfelül legyen-e (4096). Minden Visual Basic konstanshoz tartozik egy szám, amit második paraméterként megadva lehet használni. Példákon keresztül sokkal szemléletesebb a működése.
Módosítsuk a szkriptet és jelenítsük meg a "Leállítás" ("Abort"), "Ismét" ("Retry") és "Kihagyás" ("Ignore") gombokat:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",2)
A "return" visszatérési értékkel most ne foglalkozzunk, a későbbiekben majd visszatérünk rá.
Mi van, ha ugyanezeket a gombokat akarjuk látni egy kritikus hibát jelző ikonnal együtt? Adjuk össze a két konstanst: a gombok értéke 2, az ikoné 16, az összesen 18:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",18)
Láthatjuk, hogy mindig balról jobbra haladva sorban az első gomb aktív az ablak megjelenése után. Tegyük aktívvá a másodikat és adjunk hozzá a 18-hoz 256-ot:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",274)
Szemléletesebb, ha a 274-et az alábbi módszerrel adjuk meg, ugyanis jobban látszik, hogy miből tevődött össze:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",1+16+256)
Visszatérési értékek kezelése
Térjünk át a visszatérési értékek kezelésére. Annak megfelelően, hogy a felhasználó melyik gombot nyomta meg, keletkezik egy úgynevezett visszatérési érték, ami az alábbi táblázatban lévő számokat jelenti.
| Érték |
Gomb |
| 1 |
"OK" |
| 2 |
"Mégsem" ("Cancel") |
| 3 |
"Leállítás" ("Abort") |
| 4 |
"Ismét" ("Retry") |
| 5 |
"Kihagyás" ("Ignore") |
| 6 |
"Igen" ("Yes") |
| 7 |
"Nem" ("No") |
Ha a "return" értéke 3, akkor a felhasználó a "Leállítás" ("Abort") gombot nyomta le. Szkriptekben például így tudjuk lekezelni:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",2+16+256)
if return = 3 then
Wscript.Echo "A 'Leállítás' ('Abort') gomb lett lenyomva."
End if
if return = 4 then
Wscript.Echo "Az 'Ismét' ('Retry') gomb lett lenyomva."
End if
if return = 5 then
Wscript.Echo "A 'Kihagyás' ('Ignore') gomb lett lenyomva."
End if
Fejléc
Egy kivételével már minden információ rendelkezésünkre áll az üzenetablak személyre szabásához, a kivétel a fejléc, ami eddig mindig a "VBScript" szöveget jelenítette meg. Az "MsgBox" függvény következő paramétereként megadott sztring jelenti az ablak fejlécét:
return=MsgBox("Hello" & Chr(13) & Chr(10) & "Itt a WSH",2+16+256, "Saját ablak")
Példánkban a nem túl találó "Saját ablak" szöveget helyeztük el az ablak fejlécében.
Help
Ha a felhasználó lenyomja az F1 funkcióbillentyűt - amíg aktív az ablak - megjeleníthető egy szabványos Windows Súgó (Help) fájl. A "Helpfájl" helyére írjuk be a fájl nevét elérési úttal együtt és a "Context" helyére a fájlon belüli link nevét, ahová a fókusz ugorjon.