http://digilander.libero.it/Cenati

Cosa è e come imparare VbScript

| home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript |

 

 

 

 

 

Come imparare a scrivere programmi in VbScript (oppure vai giù fino a "cosa è vbScript")

Secondo me il modo migliore di imparare a programmare in VbScript è procurarsi un buon libro. Purtroppo non ci sono molti libri che trattano questo argomento. Vi consiglio per prima cosa di andare nella biblioteca pubblica e cercare "VbScript", "Windows Script Host" e "WSH" nel database. Ho elencato alcuni libri che ho letto nella Bibliografia di questo sito. E alcuni siti utili nella pagina dei links.

Allontanandoci da wsh, ma di poco, si arriva ai manuali per scrivere pagine ASP. Active Server Pages è la soluzione Microsoft per sviluppare pagine web dinamiche dal lato server. Supporta diversi linguaggi, tra cui VbScript è uno dei preferiti in quanto è piuttosto semplice e molto potente. Ancora una volta vi suggerisco di cercare i manuali su ASP nella biblioteca pubblica in quanto sono molto costosi, come la maggior parte dei libri di informatica. Una buona parte del libro non vi servirà, in quanto tratterà sicuramente gli oggetti istanziabili sul server, tipicamente Response e Session. Tuttavia troverete facilmente un elenco ben commentato delle funzioni di vbScript, insieme a vari esempi di script. Essendo una applicazione per il web, non sarà trascurato il modello ad oggetti di Internet Explorer e soprattutto dei documenti html. E dato che lo prendete in prestito, non badate a spese e prendete più di un manuale. Scegliete quelli più corposi e con cd allegato. Spesso questi cd contengono il codice descritto nel libro, magari un editor, un help file da tenere a portata di mano e il document object model di qualche componente ActiveX.

Infine, le guide alla programmazione delle applicazioni della suite MS Office (Excel, Word e Outlook) contengono importanti informazioni sul linguaggio per scrivere le macro in VBA. Con questa base di conoscenze potrete facilmente scrivere programmi che attivano e utilizzano queste applicazioni. Infatti con poche modifiche è possibile trasformare una macro scritta in VBA in uno script che usa il modello ad oggetti dell'applicazione.

Qualcosa di ben difficile da trovare è la documentazione degli "object model" utilizzabili in VbScript. Molti programmi sono potenzialmente comandabili da un programma esterno, ma come farlo non è reso noto. Io ho poche informazioni tratte dal sito www.borncity.de su Acrobat reader e sul programma Imaging che era con alcune vecchie versioni di Windows. Un file di help sul modello ad oggetti del MediaPlayer l'ho trovato per puro caso allegato ad un libro che, nel testo, non trattava affatto quell'argomento.

Sul web c'è molto poco. Soprattutto in italiano. Soprattutto di utile. Soprattutto al di sopra del livello base. Se trovate qualcosa di interessante fatemelo sapere. Va bene tutto, anche in inglese o in francese. Se il codice si capisce, anche lingue esotiche.

Se alcuni di questi termini che ho usato (vba, wsh, vbscript, modello ad oggetti) vi sono ostili, continuate a leggere. Se invece li conoscete... continuate lo stesso.

Cosa è VbScript

Visual Basic Scripting edition è nato come linguaggio per lo scripting di pagine web dal lato client. Una alternativa a Javascript, ma valida solo per Internet Explorer. E' nato con la versione 3 di MSIE e permetteva di creare pagine dinamiche con le quali l'utente aveva possibilità di interagire.

Il punto a favore è che era molto simile al VBA, il linguaggio di programmazione di Excel e di Word (nonché, poi, di Access). Quindi era già conosciuto da molti utenti non programmatori. Invece il più standard Javascript doveva essere imparato da zero. Un grosso problema delle prime versioni di VBA era che l'avevano tradotto in italiano. Questo significa, ad esempio, che l'istruzione msgbox si chiamava FinestraMessaggio. A mio avviso questa traduzione ha scoraggiato i programmatori Basic professionisti in quanto dovevano imparare nuove istruzioni; ma anche i neofiti, che dovevano comunque iimparare un linguaggio di programmazione e il solo fatto di avere le istruzioni in italiano non era sufficiente per rendere la cosa semplice.

Al momento dell'introduzione di VbScript, Internet Explorer non era il browser più utilizzato, quindi molti programmatori perdevano interesse a scrivere del codice che non avrebbe funzionato su tutti i pc.

Nel 1997 la Microsoft ha introdotto una nuova versione di Internet Information Server (I.I.S.), con pagine ASP programmabili dal lato server con VbScript. In questa versione 2 di VbScript sono state introdotte potenti istruzioni per istanziare oggetti COM, come CreateObject e GetObject. Ciò ha permesso la generazione di pagine web attingendo a basi di dati presenti sul server, utilizzando anche alcuni componenti forniti con I.I.S. appositamente creati per questo scopo (ADO, ActiveX Data Objects).

Nel 1998 é stata rilasciata la prima versione di WSH (Windows Script Host), il linguaggio di programmazione che sostituisce l'obsoleto batch del DOS. Nello stesso anno anche Outlook 98 incorporava un linguaggio VbScript. Questo permetteva di creare moduli compilabili e programmare dei comportamenti in base alle informazioni contenute. Ad esempio un modulo di raccolta ordini che aggiorna un magazzino di prodotti. Sull'argomento della programmazione di Outlook ci sono parecchi testi.

VbScript 5.0, rilasciato con IE 5.0, ha introdotto alcune nuove funzioni tra le quali ricordo la possibilità di creare classi definite dall'utente, il comando Eval ed Execute.

Ma insomma: cosa è VbScript?

E' un linguaggio di programmazione ispirato al Basic. E' un basic strutturato, con dei costrutti simili al pascal. Ci sono blocchi While-Wend, Case Of, Do Loop While/Until. Permettono una programmazione piuttosto elegante. Le variabili si possono dichiarare tutte oppure crearle al bisogno. Si può forzare l'interprete a controllare che siano tutte dichiarate con l'istruzione Option Explicit.

E' un linguaggio interpretato. Ogni volta che si clicca su un file con estensione vbs, l'interprete legge il programma e lo esegue. Questo significa che non è necessario un programma particolare per generare il codice da eseguire, ma basta il blocco note. Significa anche che la velocità non è al massimo, ma sui computer di oggi questo non è un grosso limite.

E', almeno in parte, un linguaggio ad oggetti. Si possono creare oggetti propri o utilizzarne di pronti. Si possono utilizzare gli oggetti COM (common object model) registrati in Windows. Gli oggetti possono anche essere molto complessi, come ad esempio il modello ad oggetti di Excel. Da VbScript si può avviare Excel e fargli fare quasi tutto quello che potrebbe fare l'utente. Si può accedere facilmente alle proprietà ed ai metodi di questi oggetti.

Si possono creare interfacce utente scritte in html ed unirci il codice VbScript per renderle dinamiche. Nel sito ci sono infatti anche esempi di HTML Application: qualcosa di molto simile ad una pagina web, che però appare come una applicazione (viene avviata da mshta e non da internet explorer) e non ha le limitazioni relative alla sicurezza che hanno le pagine html.

E' fornito con Windows senza che sia necessario fare qualcosa per averlo. Per far funzionare un programma in VbScript basta salvarlo in un file con estensione vbs e cliccarci sopra.

Tra le caratteristiche che mi piacciono degli script ci sono le seguenti:
Non è necessaria alcuna installazione: clicca e vai!
Per rimuovere uno script basta cancellarlo: non lascia file e voci del registry in giro.
Sfrutta quello che già è installato: usa le librerie di windows, di Internet Explorer e di Office.
I file risultano di conseguenza molto piccoli rispetto alle loro funzionalità.

La capacità di collegarsi ad oggetti esterni ha reso questo linguaggio piuttosto popolare tra gli amministratori di rete, mentre è per lo più sconosciuto agli utilizzatori finali.

Gli amministratori di rete riescono a programmare comportamenti complessi di Windows, da richiamare in modo automatico al verificarsi di determinati eventi. Ad esempio si può monitorare il funzionamento di un server e mandare un messaggio e-mail in caso di allarmi. Oppure è possibile creare automaticamente centinaia di utenti basandosi su un elenco in Excel. E' insomma possibile programmare quello che diversamente dovrebbe essere fatto avviando dei programmi a finestra e cliccando a destra ed a sinistra in modo ripetitivo per decine di volte.

A volte questo è possibile. A volte lo script riesce a fare cose altrimenti non possibili. A volte lo script non riesce a fare cose che invece è semplicissimo fare tramite un programma a finestra.

Giovanni Cenati.

 

 
 

© Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com