Automatyzacja systemu Windows XP

Automatyzacja systemu Windows XP

 Marcin Młynarczyk
Marcin Młynarczyk
00:00
28.09.2007
7 komentarzy
34681 wyświetlenie
Przy częstym korzystaniu z komputera, wykonujemy przeważnie ciągle te same czynności, mamy tutaj na myśli administrację, wykonywanie kopii zapasowych lub usuwanie niepotrzebnych plików. System Windows XP oferuje nam trzy sposoby automatyzacji, które mogą wyręczyć użytkownika z tych zadań:
  • 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 intCtr

Set objWSShell = WScript.CreateObject("WScript.Shell")

WScript.Echo "Początkowa lokalizacja pulpitu :" & objWSShell.SpecialFolders("Desktop") _& vbNewLine

strMsg = "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.


Spodobał Ci się ten artykuł? Podziel się z innymi!

Źródło:

Polecamy również w kategorii Automatyzacja systemu

Komentarze

  • jaconon 09:58 29.09.2007

    Ciekawy artykuł. Technologia prawie że analogiczna do Linuxowego basha :).

  • hakerus123 20:10 07.10.2007

    Dajcie jakies kilkadziesiat przykładów wykorzystania skryptów

  • RDR 08:47 07.12.2008

    Przepraszam zapytam. Jak to jest, że żaden plik, który zapisuję jako vbs nie działa jak to państwo opisali tylko otwiera mi jego zawartość w notatniku? Cos jest nie halo z kompem pewnie tylko co?

  • internauta 21:05 14.01.2009

    Do RDR, Aby Notatnik faktycznie zapisał plik w danym rozszerzeniu nie wystarczy tylko dopisać do nazwy .vbs ale trzeba również zmienić niższe pole z "Dokumenty tekstowe (*.txt)" na "Wszystkie pliki". Dopiero wtedy zostanie wzięta pod uwagę końcówka nazwy zawierająca rozszerzenie. Ale mogę się mylić - jesli ustawileś j/w, a nadal nie dziala, to chyba faktycznie coś jest źle z kompem :) interesujący artykuł

  • Sebol 22:14 19.02.2009

    <p>ewentualnie moze byc ale i tak nic z tego nie zrozumialembo zamiast pisac- "wstawiliśmy wynik do ciągu [b]strMsg"[/b] mogli byscie napisac jakis przyklad dotego jak to ma byc napisane czy cos</p> <p> </p>

  • Tom 17:49 26.02.2009

    Potrzebuje programu napisanego w tym wlasnie programie który wyswietlal by okno takie jak przy instalacji jakiegos programu ale przy 99% niech wyskoczy komunikat ze wystapil jakis blad i nie mozna dokonczyc instalacji. jesli ktos wie jak to zrobic to bardzo prosze zeby napisal mi wiadomosc na: http://www.youtube.com/inbox?to_users=seseker1&action_compose=1

  • Meeqsap 04:53 07.08.2016

    To jest plik mamy tylko MOA tylko mieć musisz .wsa mamy problem

Skomentuj

Autor