- Pierwszym z nich jest narzędzie Zaplanowanie zadania, czyli najbardziej przyjazny sposób, polegający na uruchamianiu programów według określonego wcześniej harmonogramu lub przy wybranych zdarzeniach, na przykład przy logowaniu.
- Kolejnym sposobem są Programy wsadowe, znane już z systemu MS-DOS, które oferują sposób uruchamiania programów oraz poleceń. Uruchamiamy je z wiersza poleceń, a to znaczy, że możemy otworzyć je także poprzez program wsadowy.
- Ostatnią opcją, którą dokładnie opiszemy jest Host skryptów systemu Windows (WSH), polegający na uruchamianiu skryptów, które są napisane w VBScript (Visual Basic Script), JScript (Java Script) oraz innych językach skryptowych.
Host skryptów
Host skryptów jest, można powiedzieć, gospodarzem dla języków skryptowych. Dzięki niemu możemy wykonywać skomplikowane zadania oraz kontrolować elementy systemu. Skrypty korzystają z technologii ActiveX, która pozwala na sterowanie systemem oraz komputerem.Plik skryptu ma rozszerzenie .vbs i uruchamiamy go, wpisując jego nazwę w wierszu polecenia lub dwukrotnie kliknąć na jego ikonę w Eksploratorze Windows. Chcąc stworzyć swój skrypt, otwieramy Notatnik a w nim wpisujemy na przykład WScript.Echo ” http://www.centrumxp.pl”, następnie zapisujemy go jako plik z rozszerzeniem .vbs. Stworzyliśmy właśnie skrypt, aby zobaczyć jak działa dwukrotnie na niego klikamy. Wyświetli nam się nowe okno Host skryptów systemu Windows, a w nim tekst, który umieściliśmy w cudzysłowie.
Język
Nie ma znaczenia, z jakiego języka będziemy korzystali w Hoście skryptów. Przyjrzyjmy się jednak odmianie języka Microsoft Visual Basic jakim jest VBScript. Różnica między językiem Visual Basic a VBScript jest taka, że ta druga ma tylko zmienne wariantowe. Musimy użyć funkcji Dim i nazwy zmiennej, ponieważ wszystkie zmienne są takie same i nie możemy podać jej typu. Przykładowy skrypt Special.vbs z użyciem tego języka wygląda tak:Option Explicit
Dim objWSShell
Dim strMsg
Dim intCtrSet objWSShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Początkowa lokalizacja pulpitu :" & objWSShell.SpecialFolders("Desktop") _& vbNewLinestrMsg = "Wszystkie Twoje specjalne foldery znajdują się w:” & vbNewLine
For intCtr = 0 To objWSShell.SpecialFolders.Count - 1
strMsg = strMsg & objWSShell.SpecialFolders.Item(intCtr) & vbNewLine
Next
WScript.Echo strMsg
Początek skryptu zawiera instrukcję Option Explicit, która nakazuje użycia instrukcji Dim dla każdej zmiennej. Instrukcja Set tworzy obiekt WScript Shell, uzyskując tym samym dostęp do folderów specjalnych, dzięki obiektowi SpecialFolders. Uzyskamy wówczas informację: W kolejnej części kodu widzimy pętle For…Next, która wyświetla foldery specjalne. Zamiast kolejny raz wstawiać instrukcję WScript.Echo w pętli, wstawiliśmy wynik do ciągu strMsg i wyświetliliśmy go po zakończeniu pętli. Rezultat tego będzie taki, że zostanie wyświetlone tylko jedno okno dla całej pętli.Znaczniki
Gdy używamy skryptów WSH powinniśmy wiedzieć, że mamy możliwość użycia programów w języku VBScript w plikach .vbs oraz pisanych w języku JScript z rozszerzeniem .js. Pliki.wsf są plikami języka XML (Extensible Markup Language), i używa się w nich znaczników. Przykładem może tutaj być plik centrumxp.wsf:
<?XML version="1.0"?>
<package>
<job id="job1">
<?job debug="true"?>
<script language="VBScript" src="MyScript.vbs"/>
<script language="VBScript">
<![CDATA[
WScript.Echo "Hello World"
]]>
</script>
</job>
</package>
Poniższa tabela przedstawia opisy użytych znaczników:
<?XML version="1.0"?> | Oznacza, że kod jest zgodny z XML 1.0 |
---|---|
<package> | Umieszcza kilka zdań w jednym pliku |
<job id="job1"> | Rozpoznaje ilość zadań w pliku |
<?job debug="true"?> | Zezwolenie na użycie debugera skryptów |
<script language="VBScript" src="MyScript.vbs"/> | Łączy inne pliki z bieżącym |
<script language="VBScript"> | Otwiera oraz zamyka skrypt |
<![CDATA[]]> | Parser traktuje kod jako znak i go nie interpretuje |
<object> | Definiuje obiekty zawarte w skrypcie |
<reference> | Odwołanie do zewnętrznej biblioteki, pozwala na użycie zdefiniowanych stałych |
<resource> | Izoluje tekst i dane, które nie mogą być zakodowane w skrypcie |
Debugowanie
Jeśli chcemy debugować skrypty, musimy najpierw zainstalować program Microsoft Script Debuger. Gdy chcemy zdebugować plik, musimy wcześniej do kodu dodać jedną linijkę<?job debug=”true”?>
Debugera włączamy używając przełączników poleceń Cscript oraz Wscript. Mamy dwa przełączniki//X - uruchamia on debuger, ładuje skrypt i zatrzymuje go przy pierwszej linii skryptu
//D - uruchamia debuger tylko wtedy, gdy w którejś linii napotka na błąd.Stwórzmy skrypt z błędem o nazwie powitanie.vbs:
main()
Function main()
x = 99
WScript.echo "Witaj drogi czytelniku"
WScript.echoo "Błąd"
WScript.echo "Cześć"
End Function
Następnie w wierszu poleceń wpisujemy:
Wscript //d powitanie.vbs
Zdanie ”Witaj drogi czytelniku” pojawi się w oknie dialogowym, a gdy naciśniemy przycisk OK, pojawi się okno Microsoft Script Debugger , a w nim zaznaczony błąd. Co prawda debuger znajduje usterkę, ale nie daje możliwości jej naprawy. Debuger posiada trzy dodatkowe okna dostępne w menu View lub z paska narzędzi:- Running Documents – okno to pokazuje jakie obecnie skrypty są uruchomione
- Call Stack – okno w którym wyświetla się historia wywołań do bieżącego punktu skryptu
- Command Window – dzięki temu okienku mamy możliwość przeglądać oraz zmieniać zmienne w skrypcie. Jednak musimy pamiętać, żeby używać w nim takiego samego języka, co uruchomiony skrypt.
Pasek narzędzi
Pasek narzędzi oferuje możliwość krokowego przejścia skryptu. Debuger wykonuje kolejne linijki skryptu, do momentu aż trafi na błąd. Jeśli mamy pewność, że w linijce nie ma błędu, oznaczamy go, aby wiedzieć, od którego miejsca zacząć dalsze sprawdzanie. Przycisk Run szybko przejdzie do tego punktu. Pasek oferuje jedenaście przycisków:
Run | Uruchamia skrypt |
---|---|
Stop Debugging | Wykonuje skrypt poza debugerem |
Break At Next Statement | Otwiera aktywny skrypt serwera w debugerze |
Step Into | Przechodzi do kolejnej instrukcji |
Step Over | Przechodzi do kolejnej instrukcji ale nie wchodzi w funkcje oraz instrukcje |
Step Out | Przechodzi dalej, aż do końca funkcji |
Toogle Breakpoint | Ustawia lub usuwa punkt wstrzymania |
Clear All Breakpoints | Usuwa wszystkie punkty wstrzymania |
Running Documents | Wyświetla okno Running Documents |
Call Stack | Wyświetla okno Call Stack |
Command Window | Wyświetla okno Command Window |
Obiekty
Obiekt jest zmienną stałą która składa się nie tylko z procedur ale także z danych. Poznaliśmy go już wcześniej, podglądając skrypt Special.vbs, gdzie użyty był WScript.Shell, który pozwala na dostęp do powłoki Windows.VBScipt zawiera czternaście obiektów, a dokładniej:Class | Gwarantuje dostęp do zdarzeń klasy |
---|---|
Dictionary | Przetrzymuje dane w formacie klucz/element |
Drive | Zapewnia dostęp do właściwości dysku |
Drives | Zbiór obiektów Drive |
Err | Gwarantuje informacje o błędach |
File | Właściwość pliku |
Files | Zbiór obiektów File |
FileSystemObject | Zapewnia dostęp do systemu plików komputera |
Folder | Właściwości folderu |
Folders | Kolekcja obiektów Folder |
Match | Przetwarzanie regularnych wyrażeń |
Matches | Kolekcja obiektów Match |
RegExp | Obsługa regularnych wyrażeń |
TextStream | Sekwencyjny dostęp do pliku |
Dzięki Automatyzacji systemu Windows XP możemy ustawić dla każdego programu harmonogram, według którego będzie działać aplikacja w systemie. Dodatkowo, przy pomocy Hostu skryptu systemu Windows możemy otwierać skrypty, które sami wcześniej utworzyliśmy.