http://digilander.libero.it/Cenati

Finestra di output con IE

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

 

 

 

 

 

Usare Internet Explorer da VbScript come finestra di output

VbScript non fornisce molti strumenti nativi per generare una decente interfaccia con l'utente. L'input avviene solo con la funzione InputBox. L'output è possibile solo con MsgBox.

Usando Internet Explorer (installato su tutti i pc) si può creare una finestra modificabile dinamicamente dal nostro programma.

Il codice è semplice. Prima di tutto creo una istanza di IE con una pagina vuota (about:blank).

Per farla sembrare una finestra qualsiasi tolgo la barra degli strumenti e la barra di stato. La rendo anche non ridimensionabile (resizable). Se voglio dare all'utente la possibilità di stampare senza dover premere ctrl-p, posso invece lasciare la toolbar che contiene, fra gli altri, i pulsanti di salvataggio e stampa.

Imposto a piacere la larghezza (width) e l'altezza (height), nonché la posizione dell'angolo in alto a sinistra della finestra. In questo caso l'angolo sarà a 50 pixel dalla sinistra e dalla cima dello schermo.

Dopo aver impostato questi dati rendo visibile la finestra vuota. All'interno ci scrivo alcuni tag html, tra i quali il più importante è un segnaposto in una sezione <div>. Gli assegno un nome, ma per ora è solo un segnaposto vuoto. Per comodità faccio puntare l'oggetto IEWindow a questo segnaposto vuoto.

Qui comincia il divertimento, perchè modificando l'oggetto IEWindow otterrò la modifica della pagina html che ho creato. Qualsiasi testo assegnato a IEWindow.InnerText apparirà nella pagina, come se fosse inserito tra la <div> e la </div>. Ovviamente si può anche mantenere fissa una parte della finestra e modificarne solo la parte restante.

Se uso la proprietà InnerHtml posso invece inserire nella <div> del codice HTML, con tutta la flessibilità immaginabile da questa possibilità. Nell'esempio mi limito a scrivere CIAO CIAO come intestazione di dimensione massima, ma posso anche scrivere <img src="c:\foto.jpg"> e Internet Explorer si incaricherà di caricare e mostrare l'immagine che ho indicato.

La pagina è dinamica, quindi ad ogni modifica di "IEWindow.InnerHtml" otterrò una modifica immediata del contenuto della finestra. Un po' di conoscenza dell'html può portare a schermate graficamente accattivanti, con font e colori diversi.

Copia il programma riportato qui sotto in un file con estensione ".vbs" oppure scarica l'archivio zip contentente lo script. Per un esempio di utilizzo, vedi anche la pagina con la mia Calcolatrice.

'*** Crea una finestra che funge da output ***
'http://digilander.libero.it/Cenati
Set myIE = CreateObject("InternetExplorer.Application")
myIE.Navigate "about:blank"
myIE.ToolBar = False:myIE.StatusBar = False:myIE.Resizable = False
Do
Loop While myIE.Busy
myIE.Width = 600:myIE.Height = 400
myIE.Left = 50:myIE.Top = 50
myIE.Visible = True
myIE.document.writeln("<html><title></title>"&_
  "<body><div id='cont'></div></body></html>")
Set IEWindow = myIE.Document.All("cont")
'**********************************************

IEWindow.INNERHTML = "ciao"
wscript.sleep 3000
IEWindow.INNERHTML ="<H1><CENTER>CIAO CIAO"
wscript.sleep 3000
MYie.QUIT
wscript.quit

Giovanni Cenati

 

 


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

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