Microsoft Excel

Herbers Excel/VBA-Archiv

InternetExplorer Object

Betrifft: InternetExplorer Object von: d
Geschrieben am: 07.07.2008 12:10:58

Hallo zusammen,

Habe ein Skript mit folgenden Bestandteilen:

Public Sub test()

Dim sendXML As String
Dim responseXML As String
Dim sendUrl As String

'#########################################

sendXML = "tableCalccd41true"

sendUrl = "http://irgendwas/XmlCommServlet?xmlMsg=" + sendXML
responseXML = getWebResult(sendUrl)
Debug.Print (responseXML)


sendXML = ""
sendUrl = "http://cdvm1030/cdDataBridge/XmlCommServlet&xmlMsg=" + sendXML
responseXML = getWebResult(sendUrl)
Debug.Print (responseXML)

Public Function getWebResult(url As String) As String

Static ieObj As Object
Dim content As String
Dim c As Integer ' counter
Const maxLoops = 5
Const sleepTime = 500 ' in milli seconds

Dim sendXML As String
Dim responseXML As String
Dim sendUrl As String

Dim gCR As String
gCR = Chr$(13)

c = 0
mark:
c = c + 1
On Error GoTo fehler
Set ieObj = CreateObject("InternetExplorer.Application")
c = 0
mark1:
c = c + 1
On Error GoTo fehler1
Do Until Not ieObj.Busy
DoEvents
Loop

c = 0
mark2:
c = c + 1
On Error GoTo fehler2
ieObj.Visible = True

c = 0
mark3:
c = c + 1
On Error GoTo fehler3
Call ieObj.Navigate(url)

Do Until Not ieObj.Busy
DoEvents
Loop

Do While ieObj.Document.ReadyState <> "complete"
DoEvents
Loop

c = 0
mark4:
c = c + 1
On Error GoTo fehler4
getWebResult = ieObj.Document.Body.innerText

c = 0
mark5:
c = c + 1
On Error GoTo fehler5
ieObj.Quit


Exit Function

Mein Problem ist jetzt,dass immer wieder ein neues iE object erzeugt wird und somit sich die SessionID ändert, damit die Ausgaber aber Sinn macht ist es notwendig immer das gleiche inet object zu nutzen bzw. die Session Id oder einen Cookie zu setzen. Ist das irgendwie möglich??

  

Betrifft: AW: InternetExplorer Object von: Jürgen
Geschrieben am: 08.07.2008 22:24:49

Hallo,

eigentlich sollte die Lösung darin liegen, statt createobject getobject zu verwenden. Da das bei meinem Test aber nicht lief und Du ieObj bereits als Static definiert hast, sollte auch gehen:

If ieobj Is Nothing Then
Set ieobj = CreateObject("InternetExplorer.Application")
End If


Am Ende "ieObj.Quit" scheint mir jedoch kontraproduktiv. Und "On Error goto Fehler1" ohne entsprechende Sprungmarke wird Dir auch keine Freude machen...

Gruß, Jürgen