Foro | | | | Andreas Gaida | Hi! Weis tal vez alguien cómo el Inhalt uno solchen Webcontrols auslesen kann. Müsste una IP Adresse lo auslesen. Mit ratón puede ser sí alles marca y kopieren.Aber me fehlen el passenden Messages en lo automáticamente a hacer.Wenn alguien el sabe ,währe Yo para ellos muy dankbar. KompilierenMarcaSeparación MfG Andreas |
| | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 18.01.2008 ▲ |
| |
| | Rolf Koch | Auf esta Art gehts garnicht. Schau veces hier: [web]https://XProfan.com/thread.core?t=3162&highlight=stringtoguid[/web] |
| | | | |
| | Andreas Gaida | Gracias aber el Beispiele zeigen el Quellcode el Página a. Yo brauche sólo el Anzeige el ausgegebenen Textos y el es manuell con el maus machbar (Realce y en el Zwischenablage kopieren)sólo desafortunadamente weis Yo no como el automáticamente va. |
| | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 18.01.2008 ▲ |
| |
| | | Andreas nein de pfui! Tomar el Descargar-Incluir - así más o menos wirst Usted aber el HTML parsen necesario a de Usted deseado Inhalte herauszufischen! (nagut, xml parsen wirst net necesario en ne IP rauszufischen, hier voluntad vlt. substrs reichen)
Su WAN-IP son Usted el download-inc auch por dw.ip() como String zurück - para el Fall el lo Usted por lo tanto va... |
| | | | |
| | Uwe ''Pascal'' Niemeier | ¡Hola Personas!
Hier una Variante a Anzeige des sichtbaren Textes uno Webseite: KompilierenMarcaSeparación $H Windows.ph
proc StringToGUID---------------Umwandlung String > globally unique identifier
parameters GUID$,GUID&
declare Temp$
Temp$=space$(80)
~MultiByteToWideChar(1,1,addr(GUID$),-1,addr(Temp$),80)
external(ole32,CLSIDFromString,addr(Temp$),GUID&)
endproc-----------------------------------------------------------------------
proc CallMethod--------------------------Methode eines COM-Interfaces aufrufen
parameters IFace&,Method&
declare VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
case %pcount=2:return call( Method&,IFace& )
case %pcount=3:return call( Method&,IFace&,&(3) )
case %pcount=4:return call( Method&,IFace&,&(3),$(4) )
case %pcount=5:return call( Method&,IFace&,&(3),&(4),&(5) )
endproc-----------------------------------------------------------------------
proc TextAuslesen-------------------------------------sichtbaren Text Auslesen
parameters WebCtrl&
declare IID#
dim IID#,16
external(ole32,CoInitialize,0)
declare IUnknown&
external(atl,AtlAxGetControl,WebCtrl&,addr(IUnknown&))
declare IWebBrowser&
StringToGUID({D30C1661-CDAF-11d0-8A3E-00C04FC9E26E},IID#)--IID_IWebBrowser2
CallMethod(IUnknown&,0,IID#,addr(IWebBrowser&))-------IUnknown::QueryInterface
declare Status&
while 1
sleep 300
CallMethod(IWebBrowser&,31,addr(Status&))--IWebBrowser&::get_Busy
casenot Status&:break
endwhile
declare IHTMLDocument2&
CallMethod(IWebbrowser&,18,addr(IHTMLDocument2&))--IWebbrowser::get_Document
declare IHTMLElement&
CallMethod(IHTMLDocument2&,9,addr(IHTMLElement&))--IHTMLDocument2::get_body
declare Text&
CallMethod(IHTMLElement&,64,addr(Text&))--IHTMLElement::get_outerText
declare Size&,Text#,Text$
Size&=external(oleaut32,SysStringLen,Text&)
dim Text#,Size&
~WideCharToMultiByte(0,0,Text&,-1,Text#,Size&,0,0)
external(oleaut32,SysFreeString,Text&)
Text$=string$(Text#,0)
CallMethod(IHTMLElement&,2)----IHTMLElement::Release
CallMethod(IHTMLDocument2&,2)--IHTMLElement::Release
dispose Text#
dispose IID#
external(ole32,CoUninitialize)
return Text$
endproc-----------------------------------------------------------------------
window 0,0-800,600
usermessages 16
def AtlAxWinInit(0) !atl.dll,AtlAxWinInit
def AtlAxCreateControl(4) !atl.dll,AtlAxCreateControl
declare Atl&,Web&,a$
Atl&=usedll(atl.dll)
AtlAxWinInit()
a$=C:Test.html-----------Pfad oder URL
Web&=control(AtlAxWin,a$,$50300000,0,0,780,250,%hwnd,0,0,$200)-HTML-Contol anlegen
a$=TextAuslesen(Web&)
create(Multiedit,%hwnd,a$,0,290,780,250)----Text anzeigen
while 1
waitinput
case %umessage=16:break
endwhile
destroywindow(Web&)
class=s4 href='./../../function-references/XProfan/freedll/'>freedll Atl&
Eleganter gehts en Verwendung meiner ocx2-Routinen [...] : KompilierenMarcaSeparaciónwindowstyle 16+8+4+2+1
window 1,1-(%maxX-1),(%maxY-1)
$H Messages.ph
$H Windows.ph
$H ocx2.ph
$I ocx2.inc
def Redraw(1) ~RedrawWindow(&(1),0,0,$485)
usermessages 16----Beenden
ocxInit()
declarar Pos#,Url$,WebControl&
dim Pos#,16
~GetClientRect(%hwnd,Pos#)
var WebObject&=ocxCreate(about:blank,%hwnd,0,0,long(Pos#,8),long(Pos#,12)/2,$53b00000,addr(WebControl&))
var Edit&=create(multiedit,%hwnd,,0,long(Pos#,12)/2,long(Pos#,8),long(Pos#,12)/2)
appendmenubar 101,Zurück
appendmenubar 102,Vorwärts
appendmenubar 103,Alto
appendmenubar 104,Aktualisieren
appendmenubar 105,Startseite
appendmenubar 106,Suchen
appendmenubar 107,Expediente öffnen
appendmenubar 108,URL öffnen
appendmenubar 109,Texto Mostrar
appendmenubar 110,Ver código fuente Mostrar
ocxMethod(WebObject&,GoHome)--Startseite öffnen
--En Bedarf: Meldungen des WebBrowsers unterdrücken (por ejemplo Scriptfehler oder Offline)
ocxPut(WebObject&,Silent,$FFFF)
proc Navigation-------------------------------------------
parámetros Mode$
var Document&=ocxGet(WebObject&,Document)
var Window&=ocxGet(Document&,parentWindow)
var History&=ocxGet(Window&,History)
ocxMethod(History&,Mode$)
ocxRelease(History&,Window&,Document&)
ENDPROC---------------------------------------------------
proc TextAnzeigen-----------------------------------------
parámetros Mode$
var Document&=ocxGet(WebObject&,Document)
var Body&=ocxGet(Document&,body)
var Texto$=ocxGet(Body&,Mode$)
ocxRelease(Body&,Document&)
settext Edit&,Texto$
ENDPROC---------------------------------------------------
mientras que 1
if menuitem(101)---------------------------------------Zurück
Navigation(back)
ocxMethod(WebObject&,goback) > Fehler en Unterlauf
elseif menuitem(102)-----------------------------------Vorwärts
Navigation(forward)
ocxMethod(WebObject&,goforward) > Fehler en Überlauf
elseif menuitem(103)-----------------------------------Alto
ocxMethod(WebObject&,Stop)
elseif menuitem(104)-----------------------------------Aktualisieren
ocxMethod(WebObject&,Refresh)
elseif menuitem(105)-----------------------------------Startseite
ocxMethod(WebObject&,GoHome)
elseif menuitem(106)-----------------------------------Suchen
ocxMethod(WebObject&,GoSearch)
elseif menuitem(107)-----------------------------------Expediente öffnen
Url$=loadfile$(Bitte Bild oder HTML-Expediente wählen,*.*)
Redraw(WebControl&)--Neuzeichnen ca. Dialogbox en Abbruch
caso len(Url$):ocxMethod(WebObject&,Navigate,*+Url$)
elseif menuitem(108)-----------------------------------URL öffnen
Url$=input$(Bitte Web-Adresse eingeben:,URL:,http://www.Google.de)
Redraw(WebControl&)--Neuzeichnen ca. Dialogbox en Abbruch
caso len(Url$):ocxMethod(WebObject&,Navigate,*+Url$)
elseif menuitem(109)-----------------------------------Texto Mostrar
TextAnzeigen(outerText)
elseif menuitem(110)-----------------------------------Ver código fuente Mostrar
TextAnzeigen(outerHTML)
endif------------------------------------------------------------
mientras que 1-------------------------Esperar, a Aktion ausgeführt es
casenot ocxGet(WebObject&,Busy):romper
sleep 200
endwhile---------------------------------------------------------
~GetClientRect(%hwnd,Pos#)--Repositionieren ca. Scrolleisten en Grössenänderung
setwindowpos WebControl&=0,0-long(Pos#,8),long(Pos#,12)/2
setwindowpos Edit&=0,long(Pos#,12)/2-long(Pos#,8),long(Pos#,12)/2
Redraw(WebControl&)--Neuzeichnen
waitinput
caso %umessage=16:romper--Ende
endwhile---------------------------------------------Ende Eingabeschleife
disponer Pos#
destroywindow(WebControl&)
ocxDeInit()
Im Zweifelsfall dejar se así auch einzelne Elemente el Webseite abfragen, si se esta irgendwie isolieren dejar, z.B. duch una intene ID. Inwiefern en el el FritzBox nutzbar es, weiß Yo aber (todavía) no...
HTH Pascal |
| | | | |
| | RGH | Ein kleiner Tipp:
Das ~GetClientRect() puede ser se sparen. XProfan sabe seit langem el Características Width(hWin&) / Height(hWin&), con denen el Ausmaße des Clientbrereiches la ventana hWin& ermitteln dejar. (Klar: Diese Características rufen natürlich auch el API GetClientRect() en ...)
Saludo Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 19.01.2008 ▲ |
| |
| | Andreas Gaida | Gracias Euch allen para el Ayuda. Aber el Lösungen son me a Komplex. Mir sería wirklich ausreichen si yo el Texto marca podría y ihm en el Zwieschenablage kopiert bekomme. Como dieses vorgehen auch manuell con ratón va debería lo auch Kommandos geben el el automáticamente bewerkstelligen. como wm_Copy, wm_Paste qué me fehlt Es el Message para alles marca.
M fG
Andreas |
| | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 19.01.2008 ▲ |
| |
| | Uwe ''Pascal'' Niemeier | ¡Hola Personas!
@ Roland: Stimmt, el GetClientRect() muß veces en irgendwelchen Versuchen übrig geblieben ser
@ Andreas:
Como dieses vorgehen auch manuell con ratón va debería lo auch Kommandos geben el el automáticamente bewerkstelligen. como wm_Copy, wm_Paste
Eben no Algo como läßt se en el Webbrowser auch sólo por COM realisieren, lo sei porque, du würdest Ratón/Cursor fernsteuern. Mit einfachen Messages es como nichts a hacer.
HTH Pascal |
| | | | |
| | Frank Abbing | Usted könntest lo con uno Kombination de el API SetCursorPos() y mouse_event() probieren. Das simulado Mausbewegungen- y knopfdrücke. |
| | | | |
| | RudiB. | Yo habe veces el oberen (ersten) Quellcode aufbereitet, bringt me aber una Fehlermeldung. Was se ejecuta como erróneo ? Seitenaufruf=Google-Translate y Deutscher Begriff es con transferencia beim Aufruf.
"https://translate.google.com/?hl=de&sl=de&tl=it&text=hummel&op=translate"
Yo möchte en el Página lediglich el Übersetzung des Wortes auslesen.
$H Windows.ph
proc StringToGUID'---------------Umwandlung String > globally unique identifier
parámetros GUID$,GUID&
declarar Temp$
Temp$=space$(80)
~MultiByteToWideChar(1,1,addr(GUID$),-1,addr(Temp$),80)
external("ole32","CLSIDFromString",addr(Temp$),GUID&)
ENDPROC'-----------------------------------------------------------------------
proc CallMethod'--------------------------Método uno COM-Interfaces aufrufen
parámetros IFace&,Method&
declarar VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
caso %pcount=2:volver call( Method&,IFace& )
caso %pcount=3:volver call( Method&,IFace&,&(3) )
caso %pcount=4:volver call( Method&,IFace&,&(3),$(4) )
caso %pcount=5:volver call( Method&,IFace&,&(3),&(4),&(5) )
ENDPROC'-----------------------------------------------------------------------
proc TextAuslesen'-------------------------------------sichtbaren Texto Auslesen
parámetros WebCtrl&
declarar IID#
dim IID#,16
external("ole32","CoInitialize",0)
declarar IUnknown&
external("atl","AtlAxGetControl",WebCtrl&,addr(IUnknown&))
declarar IWebBrowser&
StringToGUID("{D30C1661-CDAF-11d0-8A3E-00C04FC9E26E}",IID#)'--IID_IWebBrowser2
CallMethod(IUnknown&,0,IID#,addr(IWebBrowser&))'-------IUnknown::QueryInterface
declarar Status&
mientras que 1
sleep 300
CallMethod(IWebBrowser&,31,addr(Status&))'--IWebBrowser&::get_Busy
casenot Status&:romper
endwhile
declarar IHTMLDocument2&
CallMethod(IWebbrowser&,18,addr(IHTMLDocument2&))'--IWebbrowser::get_Document
declarar IHTMLElement&
CallMethod(IHTMLDocument2&,9,addr(IHTMLElement&))'--IHTMLDocument2::get_body
declarar Text&
CallMethod(IHTMLElement&,64,addr(Text&))'--IHTMLElement::get_outerText
declarar Size&,Texto#,Texto$
Size&=external("oleaut32","SysStringLen",Text&)
dim Texto#,Size&
~WideCharToMultiByte(0,0,Text&,-1,Texto#,Size&,0,0)
external("oleaut32","SysFreeString",Text&)
Texto$=cadena$(Texto#,0)
CallMethod(IHTMLElement&,2)'----IHTMLElement::Release
CallMethod(IHTMLDocument2&,2)'--IHTMLElement::Release
disponer Texto#
disponer IID#
external("ole32","CoUninitialize")
volver Texto$
ENDPROC'-----------------------------------------------------------------------
window 0,0-800,600
usermessages 16
def AtlAxWinInit(0) !"atl.dll","AtlAxWinInit"
def AtlAxCreateControl(4) !"atl.dll","AtlAxCreateControl"
declarar Atl&,Web&,a$,ME&
Atl&=usedll("atl.dll")
AtlAxWinInit()
a$="https://translate.google.com/?hl=de&sl=de&tl=it&text=hummel&op=translate"'-----------Pfad oder URL
Web&=control("AtlAxWin",a$,$50300000,0,0,780,250,%hwnd,0,0,$200)'-HTML-Contol invertir
a$=TextAuslesen(Web&)
ME&=create("Multiedit",%hwnd,a$,0,290,780,250)'----Texto Mostrar
mientras que 1
waitinput
caso %umessage=16:romper
endwhile
destroywindow(Web&)
freedll Atl&
|
| | | | |
| | RudiB. | ...todavía como Apéndice...el Webseite se komplett adecuado, entonces kommt el Fehlermeldung... |
| | | | |
| | Georg Teles | Hi, en el proc CallMethod es una fehler:
hay es una $ en lugar de & beim Parámetro Nr 4
Korrigiert klappt lo en me beim Erststart kommt el nervige Cookies Meldung
Grüße |
| | | | |
|
RespuestaTema opciones | 10.890 Views |
ThemeninformationenDieses Thema ha 10 subscriber: |