Deutsch
Forum

Erledigt: htmlWin->Queryinterface erzeugten HTML abrufen

 
Roland hat zum X11-Paket ein Demo QueryInterface.prf beigelegt.

Ich habe Uwes  [...]  ocxPackages nutzen wollen um eine Brücke zwischen dem X11-htmlWin zum ocx zu schlagen, gelang mir aber nicht.

Es gelang mir auch nicht mit dem ocxPackage eine https Seite zu öffnen.

Kurzum: Ich möchte den vom Browser erzeugten Quelltext einer https Seite ablesen wie z.B. dieser:  [...] 

Tatsächlich habe ich es über einen gemeinen Workaround mit urlDownloadToFileA hinbekommen indem ich JavaScripts der Seite in eine normale per http erreichbare Seite abgelegt habe. Der Browser ruft dann die per https erreichbaren Scripts ab - führt diese aus - und urlDownloadToFileA läd dann den erzeugten HTML. Wenn Datei jedoch lokal abgelegt ist, dann funktioniert der Trick nicht mehr - und ich möchte auf eine Hilfsseite verzichten.

Da ich von OCX & Co. keine Ahnung habe bitte ich um Hilfe.

 
26.03.2008  
 



Hier ein Quelltext (Vorlage von Roland) welcher die Seite schon korrekt läd und zeigt, ich nur nicht an den HTML heran komme:  [...] 
 
26.03.2008  
 



Habe mich bis zum Document&,body durchgearbeitet und sehe per ocxBrowse() das ein get innerHTML möglich wäre - welches beim Testen jedoch bei mir nur Abstürze verursacht - vielleicht weil hinter dem Interface-Pointer kein Objekt steht heul...
 
26.03.2008  
 



Es scheint mir das durch das Protokoll https Methoden oder Eigenschaften nicht normal abrufbar sind...
 
26.03.2008  
 



Ich kann mich wohl vom Document bis zur Eigenschaft bgcolor hangeln, aber egal was ich bei bgcolor eingebe - h& ist immer 0 NULL. Gebe ich jedoch ein nicht vorhandenes Attribut ein dann erscheint korrekterweise eine Fehlermeldung.
KompilierenMarkierenSeparieren
var Document&=ocxGet(WebObject&,Document)klappt
var body&=ocxGet(Document&,body)klappt
var h&=ocxGet(body&,bgcolor)klappt nicht :(
 
26.03.2008  
 



Es ist mir gelungen, ich brauche vielleicht dann doch keine Hilfe mehr.
KompilierenMarkierenSeparieren
--Alle Links einer Webseite auflisten
--Es könnten noch weitere Eigenschaften (ID, Target usw.) ermittelt werden
window 10,100-780,400
 $H Windows.ph
 $H ocx2.ph
 $I ocx2.inc
 $I HtmlExtra.inc
 $I ocxinfo.inc
ocxInit()
cls
print jo
declare WebControl&
var WebObject&=ocxCreate(https://seite,%hwnd,500,10,250,100,$50800000,addr(WebControl&))

whilenot %mousekey

    sleep 50
    setText %hWnd,Läd: +ocxget(WebObject&,readystate)

endwhile

while %mousekey

wend

var Document&=ocxGet(WebObject&,Document)
var collection&=ocxGet(Document&,Body)
print ocxGet(collection&,innerHTML)
waitinput
end

Der Source läd die Seite und gibt den gerenderten HTMLText zurück. Der Haken: Erst nachdem sich das ReadyState auf 4 eingepegelt hat - das muss man wohl beachten... (sicher weil hier der Server die Daten chunked übermittelt)

Die Vorlagen von UWE und die Include und das Headfile sind einfach große Klasse - danke Uwe!



Zwar konnte ich bisher die Brücke von Uwes Include zum XProfan11schen htmlWIN hier nicht schlagen - aber das bekommt sicher jemand hin der sich mit der Materie auskennt.
 
26.03.2008  
 




Frank
Abbing
Dieser Thread erinnert ein bischen an diverse AH-Threads... ...darum texte ich mal was zwischendurch...
 
26.03.2008  
 



Ja, mich auch lol.
 
26.03.2008  
 




Jörg
Sellmeyer
Frank Abbing
Dieser Thread erinnert ein bischen an diverse AH-Threads... ...darum texte ich mal was zwischendurch...


LOL Daran fühlte ich mich auch erinnert, mit dem Unterschied, daß hier kein geheimnisvolles Geraune über nicht zu postenden Code auftaucht, sondern nutzbarer Quelltext!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
27.03.2008  
 



Hier eine überarbeitete ocx2.ph (2 kleine Syntaxfehler entfernt) und für XProfan 11 angepasste ocx2.inc und ein Beispiel (um das es mir lediglich ging) welches den Body eines html Dokumentes über https (mgl. SSL) abruft.

566 kB
Hochgeladen:27.03.2008
Ladeanzahl254
Herunterladen
 
27.03.2008  
 




Uwe
''Pascal''
Niemeier
Hallo Leute!

Erstmal dank an iF für die Blumen

Der Brückenschlag zwischen XProfan11 und ocx müsste eigendlich so aussehen (ungetestet):
KompilierenMarkierenSeparieren
ocxInit()
var WebControl&=create(HTMLWin,%hwnd,www.xprofan.de,1,10,10,500,500)
var WebObject&=HTMLWin(QueryInterface,WebControl&)
var Document&=ocxGet(WebObject&,Document)

bzw.
KompilierenMarkierenSeparieren
ocxInit()
declare WebControl&
var WebObject&=ocxCreate(about:blank,%hwnd,10,10,500,500,$50800000,addr(WebControl&))
HTMLWin(GoHome,WebControl&)

Soweit ich das sehe, sollte man Zugriff auf alles kriegen, was im WebBrowser-Fenster angezeigt wird, auch wenns zB. über Scripts zur Laufzeit erzeugt wird. Haarig wird es allerdings, wenn Frames enthalten sind, weil jedes von denen ein eigenes Document-Object enthält.
Aber da kann man sich an diversen JavaScript-Codes orientieren, die man dann nach Profan portieren kann.

BTW: Ich arbeite bereits mit der nächsten ocx-Version, bei der man Fehlermeldungen unterdrücken kann. Werde bei Gelegenheit daraus ein neues Package schnüren

PS: Hab gerade gesehen, dass ich mich noch garnicht bei Roland bedankt habe für sein Interface-Beispiel...
Das hole ich hiermit nach!
Die Idee, ein Interface in eine Struktur zu übertragen ist genial! Und ich hab mich mit Dutzenden(!) selbstdefinierter Header rumgeschlagen...

PPS: Die asynchronen Ladefunktionen haben mich inzwischen auch schon Nerven gekostet...

SeeYou
Pascal
 
27.03.2008  
 



Ich habe die Fehlermeldungsmessagebox einfach ausgeklammert um ohne Messagebox prüfen zu können ob document.body.innerHTML bereits befüllt ist - z.B. mit .

Sicher ist es auch nur dann so kompliziert wenn im Header Transfer-Encoding: chunked definiert ist und damit der Server die Datei häppchenweise zum Client brabbelt.

Ich freue mich definitiv auf Deine OCX3.ZIP.
KompilierenMarkierenSeparieren
 
27.03.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

10.918 Betrachtungen

Unbenanntvor 0 min.
H.Brill01.09.2024
Rainer Hoefs25.06.2023
Christof Neuß20.05.2018
Andre Rohland01.02.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie