2. Konteksty uruchamiania pliku VBSCRIPT
2.1. Introduction
Program vbscript nie uruchamia się bezpośrednio w systemie Windows, lecz w kontenerze, który zapewnia mu środowisko uruchomieniowe oraz pewną liczbę obiektów właściwych dla tego programu. Ponadto program VBScript może korzystać z obiektów udostępnianych przez system Windows, zwanych obiektami ActiveX.
![]() |
W niniejszym dokumencie będziemy korzystać z dwóch kontenerów: Windows Scripting Host, potocznie nazywanego WSH, oraz przeglądarki Internet Explorer, nazywanej czasami w dalszej części tekstu IE. Istnieje wiele innych kontenerów. Na przykład aplikacje pakietu MS-Office są kontenerami dla pochodnej obiektu VB o nazwie VBA (Visual Basic for Applications). Istnieje ponadto wiele aplikacji systemu Windows, które pozwalają użytkownikom na przekraczanie ograniczeń tego środowiska, umożliwiając im tworzenie programów uruchamianych w ramach aplikacji i korzystających z obiektów właściwych dla tej aplikacji.
Kontener, w którym uruchamia się program VBScript, odgrywa kluczową rolę:
- Obiekty udostępniane programowi VBScript przez kontener różnią się w zależności od kontenera. Na przykład WSH udostępnia programowi VBS obiekt o nazwie WScript, który zapewnia dostęp m.in. do udziałów sieciowych i drukarek sieciowych na komputerze hosta. Z kolei obiekt IE udostępnia programowi VBS obiekt o nazwie document, który reprezentuje całość wyświetlanego dokumentu HTML. Program VBS będzie wtedy mógł operować na tym dokumencie. Z kolei program Excel udostępnia programowi obiekty o nazwie VBA, reprezentujące skoroszyty, arkusze w skoroszytach, wykresy itp. – w zasadzie wszystkie obiekty obsługiwane przez program Excel.
- Chociaż obiekty w danym kontenerze zapewniają programowi VBScript pełną moc, to czasami mogą ograniczać niektóre jego możliwości. Na przykład program VBScript uruchomiony w przeglądarce o identyfikatorze IE nie ma dostępu do dysku komputera hosta ze względów bezpieczeństwa.
Dlatego też, mówiąc o programowaniu w VBScript, należy wskazać, w którym kontenerze program jest uruchamiany.
W systemie Windows VBScript nie jest jedynym językiem, którego można używać w kontenerach WSH lub IE. Można na przykład użyć JScript (=JavaScript), PerlScript (=Perl), Python itp. Wiele z tych języków wydaje się na pierwszy rzut oka lepszych od VBScriptu. Ten ostatni ma jednak poważne zalety:
- VB oraz jego odmiany VBSCRIPT i VBA są bardzo rozpowszechnione na komputerach z systemem Windows. Znajomość tego języka wydaje się niezbędna.
- To raczej obiekty, z których może korzystać program, a nie sam język, decydują o jego mocy. Wiele z tych obiektów jest jednak dostarczanych przez środowiska uruchomieniowe, a nie przez same języki.
Wadą języka VBSCRIPT jest to, że nie jest on przenośny na systemy inne niż Windows, na przykład Unix. Jego konkurenci – JavaScript, Perl i Python – są natomiast przenośni. Jeśli musimy pracować na systemach heterogenicznych, korzystanie z tego samego języka na różnych systemach może być interesujące, a nawet niezbędne.
2.2. Kontener WSH
Kontener WSH (Windows Scripting Host) umożliwia uruchamianie w systemie Windows programów napisanych w różnych językach: vbscript, javascript, perlscript, python itp. Istnieje standard, którego należy przestrzegać, aby dany język mógł być używany w ramach WSH. Każdy język spełniający ten standard może być uruchamiany w ramach WSH. Można sobie wyobrazić, że powyższa lista języków uruchamianych w WSH może się wydłużyć. Kontener udostępnia uruchamianym programom obiekty, które zapewniają im prawdziwą moc. Zmniejsza to różnice między językami, ponieważ wszystkie korzystają wówczas z tego samego zestawu obiektów. Wybór jednego języka zamiast innego może stać się wówczas kwestią gustu, a nie wydajności.
Uruchomienie programu w WSH odbywa się za pomocą dwóch plików wykonywalnych: wscript.exe i cscript.exe. Plik wscript.exe znajduje się zazwyczaj w katalogu instalacyjnym systemu Windows, zwanym zazwyczaj %windir%:
C:\ >echo %windir%
C:\WINDOWS
C:\>dir c:\windows\wscript.exe
WSCRIPT EXE 123 280 19/09/01 11:54 wscript.exe
L'exécutable cscript.exe se trouve lui sous %windir%\command :
C:\>dir c:\windows\cscript.* /s
Répertoire de C:\WINDOWS\COMMAND
CSCRIPT EXE 102 450 26/06/01 17:49 cscript.exe
Litera „w” w nazwie wscript oznacza windows, a litera „c” w nazwie cscript oznacza console. Skrypt można uruchomić zarówno za pomocą wscript, jak i cscript. Różnica polega na sposobie wyświetlania komunikatów na ekranie:
- wscript wyświetla je w oknie,
- cscript wyświetla je bezpośrednio na ekranie
Oto skrypt coucou.vbs, który wyświetla na ekranie coucou:
![]()
Otwórzmy okno DOS i uruchommy go kolejno z wscript oraz cscript:

DOS>cscript coucou.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
coucou
Powyżej wyraźnie widać różnicę między tymi dwoma trybami. W niniejszym dokumencie będziemy korzystać niemal wyłącznie z trybu konsolowego cscript. Jest to tryb odpowiedni dla aplikacji tzw. „batchowych”, czyli aplikacji bez interakcji z użytkownikiem za pomocą klawiatury. W powyższych wynikach należy zwrócić uwagę na dwie kwestie:
- Założono, że pliki wykonywalne wscript.exe i cscript.exe znajdowały się w katalogu „PATH” na komputerze, co pozwala na ich uruchomienie poprzez wpisanie po prostu ich nazw. Gdyby tak nie było, należałoby wpisać tutaj:
- Należy zauważyć, że wersja programu wsh używana w tym przykładzie oraz w dalszej części dokumentu to wersja 5.6.
- Plik źródłowy skryptu ma rozszerzenie .vbs. Jest to rozszerzenie oznaczające skrypt vbscript, natomiast skrypt javascript jest oznaczony rozszerzeniem .js.
Program cscript posiada różne opcje uruchamiania, które można uzyskać, uruchamiając program cscript bez argumentów:
Argument //nologo wyłącza wyświetlanie banera programu wsh:
2.3. Skład skryptu WSH
Właśnie zapoznaliśmy się z pierwszym skryptem: coucou.vbs
![]()
Wskazaliśmy, że rozszerzenie pliku .vbs odnosi się do skryptu vbscript. Nie jest to jednak obowiązkowe. Moglibyśmy umieścić skrypt w pliku o rozszerzeniu .wsf w następującej, bardziej złożonej formie:

Wykonanie tego skryptu daje następujący wynik:
Skrypt WSH może łączyć różne języki:

Wykonanie tego skryptu daje następujący wynik:
Zwróćmy uwagę na następujące kwestie:
- Kontener WSH nie jest powiązany z żadnym językiem. Skrypt wsh może łączyć różne języki w pliku z rozszerzeniem .wsf
- Skrypt jest wówczas ujęty w tagi <job id="..."> ... </job>
- Wewnątrz aplikacji (=job) języki używane w poszczególnych fragmentach kodu są oznaczone tagami <script language="...."> .... </script>
- Ten język znaczników nosi nazwę: XML, co oznacza eXtended Markup Language. XML nie definiuje żadnych znaczników, lecz zasady rozmieszczenia znaczników. W tym przypadku należałoby zatem stwierdzić, że język znaczników używany w skrypcie wsh jest zgodny ze standardem XML.
W dalszej części będziemy używać wyłącznie języka VBScript w plikach .vbs.
2.4. Obiekt WSCRIPT
Kontener WSH udostępnia skryptom, które wykonuje, obiekt o nazwie wscript. Obiekt posiada właściwości i metody:
![]() |
Obiekt Obj posiada właściwości Pi, które określają jego stan. Tak więc obiekt thermomètre może posiadać właściwość température. Ta właściwość jest jednym z aspektów stanu termometru. Innym aspektem może być maksymalna temperatura Tmax, jaką termometr jest w stanie wytrzymać.
Obiekt Obj może posiadać metody Mj, które umożliwiają podmiotom zewnętrznym:
- uzyskać informacje o jego stanie
- zmienić jego stan
Tak więc nasz termometr, jeśli jest elektroniczny, mógłby posiadać metodę allumer, która go włączałaby, inną metodę éteindre, która go wyłączałaby, oraz jeszcze inną metodę afficher, która wyświetlałaby temperaturę równowagi po jej osiągnięciu. W terminologii programistycznej metoda to funkcja, która może przyjmować argumenty i zwracać wyniki.
W języku VBScript właściwości Pi obiektu Obj są oznaczane jako Obj.Pi, a metody Mj jako Obj.Mj. Obiekt wscript o nazwie WSH jest ważnym obiektem ze względu na metody, które udostępnia skryptom. Na przykład jego metoda echo pozwala wyświetlić komunikat. Składnia tej metody jest następująca:
Wartości argumentów argi są następnie wyświetlane w oknie (w przypadku wykonania przez wscript) lub na ekranie (w przypadku wykonania przez cscript w ramach DOS).
2.5. Internet Explorer jako kontener
Wspomnieliśmy wcześniej, że przeglądarka Internet Explorer może pełnić rolę kontenera dla skryptu VBScript. Zilustrujmy to na prostym przykładzie. Poniżej znajduje się strona HTML (HyperText Markup Language) o nazwie coucou2.htm, która nie zawiera skryptu VBScript.
21

Jej bezpośrednie załadowanie w przeglądarce Internet Explorer (Fichier/Ouvrir) daje następujące wyniki:
![]() |
Zawartość pliku coucou2.htm pokazuje nam, że HTML jest językiem znaczników. Znajomość języka HTML oznacza znajomość tych znaczników. Ich głównym celem jest wskazanie przeglądarce, w jaki sposób wyświetlić dokument. HTML nie jest całkowicie zgodny ze standardem XML, ale jest do niego zbliżony.
W coucou2.htm znajdują się dwie informacje oznaczone numerami 1 i 2. Odzwierciedliliśmy je również w wygenerowanym wyświetlaczu. To właśnie tag <title>...</title> spowodował, że informacja 1 została umieszczona w pasku tytułu przeglądarki, a tag <body>..</body> spowodował, że informacja 2 została umieszczona w części dokumentowej przeglądarki.
Nie będziemy zagłębiać się dalej w analizę języka HTML. Zmodyfikujmy plik coucou2.htm, wprowadzając do niego skrypt VBScript, i nazwijmy go teraz coucou1.htm:

Skrypt VBScript został umieszczony w tagu <head>...</head>. Mógłby zostać umieszczony gdzie indziej. Wyświetla on „coucou” przy pierwszym załadowaniu strony. W tym przypadku przeglądarką musi być Internet Explorer, ponieważ tylko ta przeglądarka domyślnie obsługuje skrypty VBScript. Uzyskany wynik wygląda następująco:

a następnie normalny wygląd strony:

Wykonano następujący skrypt:
![]()
Podczas gdy kontener WSH udostępniał skryptowi obiekt o nazwie wscript, umożliwiający wyświetlanie treści za pomocą metody echo, tutaj IE udostępnia skryptowi obiekt window, umożliwiający wyświetlanie treści za pomocą metody alert. Aby więc wyświetlić „coucou”, wpisujemy wscript.echo „coucou” w WSH oraz window.alert „coucou” w IE. Można tu również pokazać, że w rzeczywistości w kontenerze IE można używać wielu języków. Powróćmy do przykładu przedstawionego już w pliku WSH w ramach strony coucou3.htm:

Po załadowaniu tej strony przez IE wyświetlane są najpierw trzy okna informacyjne:
![]() | ![]() | ![]() |
a następnie wyświetla stronę docelową:

2.6. Pomoc programu WSH
WSH zawiera system pomocy, który zazwyczaj znajduje się w folderze „C:\Program Files\Microsoft Windows Script\ScriptDocs”. W przypadku wersji 5.6 programu WSH plik pomocy nosi nazwę „SCRIPT56.CHM”. Wystarczy dwukrotnie kliknąć ten plik, aby uzyskać dostęp do pomocy. Przydatne może być utworzenie skrótu do tego pliku na pulpicie.
Po uruchomieniu wyświetla się następujący ekran:

Znajduje się tam pomoc dotycząca kontenera WSH, a także pomoc dotycząca języków VBScript i JavaScript. Jest to niezbędne narzędzie zarówno dla początkujących, jak i doświadczonych programistów. Istnieje kilka sposobów korzystania z tej pomocy:
- nie wiadomo dokładnie, czego się szuka. Chcemy po prostu zapoznać się z dostępnymi opcjami. W takim przypadku można skorzystać z powyższej zakładki Sommaire. Można na przykład sprawdzić, co jest dostępne dla języka VBScript:

W pomocy do VBscript znajdziesz wiele informacji, których nie ma w tym dokumencie.
- Można wyszukać konkretną informację, na przykład sposób korzystania z funkcji msgbox w VBscript. W tym celu należy skorzystać z zakładki Rechercher:

Pomoc wyświetla wszystkie hasła związane z wyszukiwanym słowem. Zazwyczaj pierwsze proponowane hasła są najbardziej trafne. Tak jest również w tym przypadku, gdzie pierwsze proponowane hasło jest właściwe. Wystarczy dwukrotnie kliknąć na nie, aby uzyskać informacje zawarte w tym haśle:






