momentan hänge ich an einem Problem im Zusammenhang mit Auslesen / Beschreiben von Formular-Feldern und dem Klicken von Buttons in Frame-basierten HTML-Seiten.
Während z.B. das Beschreiben eines Formular-Felds über die ID auf "normalen" HTML-Seiten mit folgendem Code problemlos funktioniert (für das Auslesen und Knöpfe-Betätigen benutze ich analog aufgebaute Lösungen, die auf Code-Schnipseln beruhen, die ich hier im Forum gefunden habe),
Code: Alles auswählen
Procedure.s PutElementText (idWebGadget.i, sKey.s, text.s)
Protected WebBrowser .IWebBrowser2 = GetWindowLong_(idWebGadget, #GWL_USERDATA)
Protected Dispatch .iDispatch
Protected Document .IHTMLDocument3
Protected Element .IHTMLElement
Protected InputElement .IHTMLInputElement
Protected bstrValue .i
Protected sValue .s
If Not (WebBrowser\get_Document(@Dispatch) = #S_OK)
Dispatch\Release()
ProcedureReturn ""
EndIf
If Not (Dispatch\QueryInterface(?IID_IHTMLDocument3, @Document) = #S_OK)
Document\Release()
Dispatch\Release()
ProcedureReturn ""
EndIf
If Not (Document\getElementById(sKey, @Element) = #S_OK And Element)
Document\Release()
Dispatch\Release()
ProcedureReturn ""
EndIf
If Not (Element\QueryInterface(?IID_IHTMLInputElement, @InputElement) = #S_OK)
Element\Release()
Document\Release()
Dispatch\Release()
ProcedureReturn ""
EndIf
If Not (InputElement\put_Value(text) = #S_OK)
Element\Release()
Document\Release()
Dispatch\Release()
ProcedureReturn
EndIf
InputElement\Release()
Element\Release()
Document\Release()
Dispatch\Release()
EndProcedure
Ich habe allerdings im MSDN bislang noch keinen Weg gefunden, wie ich über die diversen Interfaces, Methods und Properties an die INPUT-Text und -Submit-Felder in einem bestimmten Frame herankomme.
Geht man da am besten über das "IHTMLFramesCollection2"-Interface -> Item -> frame -> getElementsByTagName, usw... oder über das "IHTMLFrameElement3"-Interface und wie geht es da jeweils weiter?
Da ich mich mit diesen COM-Geschichten noch nicht gut auskenne

Viele Grüße
Markus