![]() |
||
![]() |
Profi-Tipp: Internet Explorer für Eingabedialog von VBS-Programmen nutzenTipp 4 in CHIP 4/2004 beschreibt, wie Sie den Internet Explorer als Ausgabefenster für WSH-Programme einsetzen. Nun möchten Sie auch die begrenzten Möglichkeiten des Eingabebefehls »InputBox()« durch einen komfortablen Eingabedialog erweitern. Eingabedialog entwerfen <HTML>Das Formular »Eingabe« zwischen den Schlüsselwörtern »FORM« und »/FORM« erfragt den Namen. Dafür definieren Sie mit dem ersten »INPUT«-Befehl ein Eingabefeld vom Typ »text«, das Sie später über seine Bezeichnung »Name« ansprechen. Der »INPUT«-Befehl vom Typ »button« erzeugt eine Schaltfläche zum Aufrufen der Funktion »uebernehmen()«. Auswerte-Skript einfügen Damit Ihr VBS-Programm die Eingabe auswerten kann, erweitern Sie das HTML-Formular zwischen »HEAD« und »/HEAD« um den Abschnitt: <SCRIPT language="VBScript">Wenn der Anwender auf »Übernehmen« klickt, wird »intEingabeStatus« der Wert »1« zugewiesen. HTML-Formular einsetzen Jetzt können Sie das HTML-Formular in das folgende Skript integrieren – es erzeugt mit den editierten Daten ein personalisiertes Begrüßungsfenster. INPUTWITHIE.VBS integrieren:Das Objekt »objIE« vom Typ »InternetExplorer.Application« repräsentiert den Internet Explorer und wird mit »Set objIE = CreateObject("InternetExplorer.Application")« erzeugt. Die Eigenschaften »width«, »height«, »Toolbar« und »Statusbar« sorgen für das Layout. Bevor »objIE.visible = true« den Browser öffnet, lädt »objIE.navigate« das HTML-Formular für die Eingabe. Dabei wird der Dateiname inklusive Pfadangabe als Parameter übergeben. Wenn Sie Formular und VBS-Programm im gleichen Ordner speichern, können Sie die Pfadangabe automatisieren: Schreiben Sie »WScript.ScriptFullName« – es enthält Namen und Pfad des laufenden Skriptes – in die Variable »szWorkingDirectory« und entfernen Sie dann mit »Left(szWorkingDirectory, InstrRev (szWorkingDirectory,"\"))« den Namen der Skriptdatei aus dem Text-String.In einer ersten Warteschleife prüft das Skript den Wert »objIE.Busy«, damit das Programm erst weiterarbeitet, wenn das Formular im Browser geladen ist. Eine zweite Schleife wartet, bis der Wert »objIE.document.script. intEingabeStatus« mit »1« belegt ist, also der Anwender im Formular auf »Übernehmen« geklickt hat. Dann überträgt die Anweisung »szName = objIE.document.Eingabe.Name.Value« den Wert aus dem Formularfeld »Name« in die Variable »szName«. Nun wird der IE mit der »Quit«-Methode beendet und das Objekt mit »Set objIE = Nothing« freigegeben. Abschließend erfolgt die persönliche Begrüßung in einer Message-Box. |
![]() |