Menü

Dialog: WebBrowser (iScript)

Zurück | Ebene zurück

Über diese Funktion wird ein Fenster mit einem Web-Browser erzeugt. Das Fenster kann - im Gegensatz zu anderen Dialogfenstern - auch losgelöst vom Programmablauf existieren (nict-modal). Z.B. zum Anzeigen von Statusinformationen oder als Container für Werkzeuge und wichtige Menüpunkte.

Der angezeigte Inhalt kann wahlweise aus einer URL geladen oder direkt als HTML-Quellcode hinterlegt werden.

Methoden

  • procedure Show
  • procedure ShowModal
  • procedure Close
  • procedure SetBounds(Left, Top, Width, Height)

Eigenschaften

  • property URL: [URL] - Pfadangabe zur angegebenen Webseite.
  • property HTMLSource: [HTML-Code] - Hier wird der komplette HTML Code der Seite beschrieben.
  • property Width: [Integer] - gibt die Breite des Browsers an.
  • property Height: [Integer] - gibt die Höhe des Browsers an.
  • property Top: [Integer]
  • property Left: [Integer]
  • property Title: string
  • property SubTitle: string
  • property IconUrl: string
  • property Document: IDocument
  • property AbortButtonVisible: Boolean
  • property OKButtonVisible: Boolean
  • property Context: EulandaContextObject
  • property FormVisible: Boolean

A. Beispiel für ein Browserfenster

In diesem Beispiel wird ein Browserfenster erstellt und es wird "Hallo" in das Fenster geschrieben.

VBScript

option explicit

dim wb, b
Set wb = Client.CreateDialog("WebBrowser")
wb.URL = "eulanda://./ALLUSER/BROWSERTEST.htm"
wb.HTMLSource = "<html><H1>HALLO</h1></html>"
wb.Width = 400
wb.Height = 150
wb.show

'Set Wb = Nothing

B. Beispiel für eine dynamisch generierte HTML-Seite

Dieses Beispiel dient gleichzeitig als Beispiel für die Eigenschaft Properties des Client-Objekts. Im ersten Teil wird hierbei ein HTML-Quelltext erzeugt, der die Werte aller verfügbaren Eigenchaften aus Client.Properties() enthält. Dieser HTML-Quelltext wird dann in einem Webbrowser-Fenster angezeigt.

VBScript

VBScript

option explicit

dim SL, SLOut, i, Html, s, wb
set SL = Client.CreateObject("eulanda.stringlist")
set SLOut = Client.CreateObject("eulanda.stringlist")

SL.ADD ":GLOBAL"

SL.Add "GLOBAL.PRIMARYLANG"
SL.Add "GLOBAL.PRIMARYLOCALE"
SL.Add "GLOBAL.UILANG"
SL.Add "GLOBAL.UILOCALE"
SL.Add "GLOBAL.DEFPRINTLANG"
SL.Add "GLOBAL.DEFPRINTLOCALE"

SL.ADD ":CLIENT"

SL.Add "CLIENT.NUMBER"

SL.ADD ":EXE"

SL.Add "EXE.MAINVERSION"
SL.Add "EXE.SUBVERSION"
SL.Add "EXE.RELEASE"
SL.Add "EXE.BUILD"
SL.Add "EXE.VERSION"
SL.Add "EXE.FULLVERSION"
SL.Add "EXE.UDLFILENAME"
SL.Add "EXE.FULLNAME"

SL.ADD ":WTS"

SL.Add "WTS.CLIENTNAME"
SL.Add "WTS.CLIENTADDRESS"
SL.Add "WTS.DOMAINNAME"
SL.Add "WTS.CLIENTDIRECTORY"

SL.ADD ":FOLDER"

SL.Add "FOLDER.DESKTOP"
SL.Add "FOLDER.WINDOWS"
SL.Add "FOLDER.WINDOWSTEMP"
SL.Add "FOLDER.EULANDATEMP"
SL.Add "FOLDER.EXE"
SL.Add "FOLDER.CLIENT"
SL.Add "FOLDER.CLIENTCACHE"
SL.Add "FOLDER.CLIENTBLOBCACHE"
SL.Add "FOLDER.APPDATA"
SL.Add "FOLDER.CDBURN"
SL.Add "FOLDER.MYDOCUMENTS"
SL.Add "FOLDER.PERSONAL"
SL.Add "FOLDER.INTERNETCACHE"
SL.Add "FOLDER.COOKIES"
SL.Add "FOLDER.HISTORY"
SL.Add "FOLDER.LOCALAPPDATA"
SL.Add "FOLDER.COMMONAPPDATA"
SL.Add "FOLDER.PROGRAMFILES"
SL.Add "FOLDER.MYPICTURES"
SL.Add "FOLDER.MYVIDEO"
SL.Add "FOLDER.PROGRAMFILESCOMMON"
SL.Add "FOLDER.COMMONDOCUMENTS"
SL.Add "FOLDER.COMMONADMINTOOLS"
SL.Add "FOLDER.ADMINTOOLS"
SL.Add "FOLDER.STARTUP"
SL.Add "FOLDER.DATALINKDIR"
SL.Add "FOLDER.UDLLOCALAPPDATA"

SL.ADD ":IEXPLORER"

SL.Add "IEXPLORER.VERSION"
SL.Add "IEXPLORER.MAJORVERSION"

Html = "<PRE>" & vbCrLf
for I = 0 TO SL.Count-1
s = SL.Strings(i)
If left(s,1) <> ":" Then
SLOut.Add "<B>" & s & "</B>"
on error resume next
SLOut.Add " " & Client.Properties(s)
if Err.Number <> 0 Then
SLOut.Add "<span style='color:red'>"&Err.Description&"</span>"
Err.Clear
End IF
Else
s = Right(s,Len(S)-1)
SLOut.Add ""
SLOut.Add "<H3>" & s & "</H3>"
End If
Next

html = "<HTML><PRE>"&SLOut.Text&"</PRE></HTML>"

set SL = Nothing
set SLOut = Nothing

Set wb = Client.CreateDialog("WebBrowser")
wb.HTMLSource = html
wb.Title = "Client.Properties()"
wb.IconUrl = "folder"
wb.Borderstyle = 5
wb.AbortButtonVisible = False
wb.ShowModal
set wb = Nothing

C. Beispiel für ein nicht Modales Fenster, um auf das Löschen einer Datei zu warten

In diesem Beispiel wird auf das Löschen einer Datei gewartet. Das ist beispielsweise bei der Übergabe an externe Schnittstellen erforderlich. Prinzipiell kann natürlich auch auf andere Umstände gewartet werden. Dazu muss „ellib.FileExists“ gegen eine entsprechende Bedingung getauscht werden. Wenn das Löschen der Datei länger dauert als „DialogDelay“ angegeben, wird eine Hinweismeldung angezeigt. Ist die Zeitspanne größer als „Timeout“, so wird der ganze Vorgang abgebrochen.  Beide Zeitangaben erfolgen in Millisekunden. Der Text, der im Wartefenster angezeigt wird, kann über „Title“ vorgegeben werden. Bricht der Benutzer den Wartevorgang ab, so wird „-2“ zurückgegeben; ist der Timeout erreicht „-1“. Bei erfolgreicher Löschung der Datei wird ein positiver Wert zurückgegeben, der die verstrichene Zeit angibt.

In diesem Beispiel wird der Webbrowser gar nicht zum Anzeigen eines HTML-Dokuments verwendet. Es wird sich in erster Linie die Möglichkeit genutzt, einen nicht-modalen Dialog anzuzeigen.

VBScript

option explicit

function WaitForFileDelete(Filename, Title, DialogDelay, Timeout)
dim Counter, WaitStr, Seconds, wb, Aborted
counter = 0
Seconds = 0
Aborted = False
set wb = Nothing

WaitStr = ""
do while ellib.FileExists(Filename) and Counter < Timeout
if Counter >= DialogDelay then 
if TypeName(wb) = "Nothing" then
set wb = Client.CreateDialog("WebBrowser")
wb.Title = Title
wb.SubTitle = "einen Moment bitte ..." & WaitStr
wb.Height = 85
wb.Show
else
if not wb.FormVisible then
Aborted = True
Exit Do
end if

If Seconds mod 10 = 0 then
WaitStr = WaitStr & "."
wb.SubTitle = "einen Moment bitte ..." & WaitStr
end if
Seconds = Seconds + 1
end if
end if
counter = counter + 100
ellib.Sleep(100) ' 10tel Sekunde Warten
ellib.ProcessMessages ' Eulanda Zeit geben Windows-Botschaften zu verarbeiten
Loop

set wb = Nothing

if Aborted then
WaitForFileDelete = -2
elseIf not ellib.FileExists(Filename) then
WaitForFileDelete = Counter
else 
WaitForFileDelete = -1
end if
end function

' TESTEN der Funktion
dim Filename, Code, msg
' Dateinamen für eine Testdatei auf dem Desktop erzeugen
Filename = Client.Properties("Folder.Desktop") & "\FileDeleteTest.txt"
' Erzeugen der Datei 
ellib.SaveString "EULANDA Beispieldatei zur Demonstration der API-Funktion WaitForFileDelete", Filename

' Eigentlicher Aufruf der Wartefunktion
Code = WaitForFileDelete(Filename, "Warten auf Löschung der Datei Übergabe", 500, 5000)

' Auswertung des Rückgabewertes
select case Code
case 0 Msg = "Die Datei ist nicht vorhanden"
case -1 Msg="Der Timeout ist abgelaufen"
case -2 Msg="Abbruch durch Benutzer"
case Else
Msg = "Die Datei wurde ca. nach " & CSTr(Code/1000) & " Sekunden gelöscht"
end Select

MsgBox Msg