Eingabefelder + Buttons in Frames lesen/schreiben/klicken

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
HW-SW-Tüftler
Beiträge: 11
Registriert: 30.07.2009 07:34
Wohnort: Schaafheim - Mosbach

Eingabefelder + Buttons in Frames lesen/schreiben/klicken

Beitrag von HW-SW-Tüftler »

Hallo,

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
funktioniert dies bei Frame-basierten Seiten so (logischerweise) nicht.

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 :oops: , bin ich für jeden Gedankenanstoß in die richtige Richtung dankbar. Wie müßte man die Prozedur für Frames anpassen?
Viele Grüße
Markus
____________________________________________________________________________
div. PC's mit Win10 und Win7, div. AMIGA's bis 68060, PureBasic 6.12LTS und Elektronik-Bauteile ohne Ende...

Bei Anderen dampft die Zigarette, bei mir der Lötkolben... :-)
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: Eingabefelder + Buttons in Frames lesen/schreiben/klicke

Beitrag von True29 »

hi , ich hab so das das Gefühl als ob du dich da besser an ein Html Forum wendest ;)

Desweiteren wäre ein lauffähiges demo bestimmt nich schlecht.
Und was is dein Ziel mit dem ganzem ? eventuell is das herangehen falsch.
eventuell gibts ja ne einfache Möglichkeit mit einem PHP script ?

Grüße.
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Eingabefelder + Buttons in Frames lesen/schreiben/klicke

Beitrag von Kiffi »

True29 hat geschrieben:Desweiteren wäre ein lauffähiges demo bestimmt nich schlecht.
+1

Würde mir das schon gerne mal anschauen, aber ein entsprechendes
Test-Szenario aufzubauen, ist mir momentan zu zeitraubend.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Sicro
Beiträge: 963
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Eingabefelder + Buttons in Frames lesen/schreiben/klicke

Beitrag von Sicro »

Hallo HW-SW-Tüftler,

schau dir mal diesen Code an: http://forums.purebasic.com/english/vie ... 85#p284885
Dort werden Frames mit "get_frames()" angesprochen.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Antworten