Español
C ++ Foro

Volver Valor stimmt no

 
- Página 1 -



Georg
Hovenbitzer
¡Hola Sebastian,

Yo veces otra vez una größeres Problema.
Der geniale folgende Code stammt vom Pascal, soetwas podría Yo no ausdenken.
Er ermittelt el Quellcode de una geöffneten IE Ventana, como z.B. www.google.de.
Zum Test Por favor, no große Página nehmen, como el Zuweisung para Editar Feld en el Beispielt todavía por SetText va.

Im Interpreter y como Profano Exe se ejecuta él super, übersezt kommt siempre una Schutzverletzung.
El Línea el el Fehler verursacht Es el:
Error& = CallMethod(IHTMLElement&,62,@Addr(Text&))

Der Grund es dafür, dass el Aufruf davor de:
Error& = CallMethod(IHTMLDocument2&,9,@Addr(IHTMLElement&))

Un Error& Nummer <> 0 zurückt son y IHTMLElement&, igual 0 es.

Könnte dieses Problema des Übersetzen ser ?
KompilierenMarcaSeparación
 $H D:PrivatProfanXProfan9INCLUDEWindows.ph
---------------Umwandlung String > globally unique identifier

Proc StringToGUID

    Parameters GUID$,GUID&
    Declare Temp$
    Temp$ = @Space$(80)
    ~MultiByteToWideChar(1,1,@Addr(GUID$),-1,@Addr(Temp$),80)
    @External("ole32","CLSIDFromString",@Addr(Temp$),GUID&)

EndProc

-----------------------------------------------------------------------
--------------------------Methode eines COM-Interfaces aufrufen

Proc CallMethod

    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

-----------------------------------------------------------------------
----------WideChar (UniCode) zu MultiByte (Ansi) [nur OLE!]

Proc OLE_WideToMulti

    Parameters Text&
    Declare Text$,Size&,Text#
    Size& = @External("oleaut32","SysStringLen",Text&)
    Dim Text#,Size&
    Clear Text#
    ~WideCharToMultiByte(0,0,Text&,-1,Text#,Size&,0,0)
    @External("oleaut32","SysFreeString",Text&)
    Text$ = @String$(Text#,0)
    Dispose Text#
    Return Text$

EndProc

-----------------------------------------------------------------------
------------------------------EnumChildProc---------------------------

Proc EnumChildProc

    Parameters wnd&
    Declare Name#
    Dim Name#,255
    ~GetClassName(wnd&,Name#,255)
    Case @String$(Name#,0)="Internet Explorer_Server" : IEServerWnd& = wnd&
    Dispose Name#
    Return 1

EndProc

---------------------------------------------------------------------------------
--------------------------RunningIE_GetText-----------------------

Proc RunningIE_GetText

    Parameters IEHwnd&
    Declare Error&,IID#,Msg&,Result&,oleacc&,IHTMLDocument2&,IHTMLElement&,Text&,Text$,Url&,Url$
    Dim IID#,16
    Declare IEServerWnd&
    ~EnumChildWindows(IEHwnd&,@ProcAddr(EnumChildProc,2),0)
    @ProcAddr(EnumChildProc,-2)--ProcAddr freigeben
    Print "IEServerwnd&",IEServerWnd&
    Print
    Msg& = ~RegisterWindowMessage("WM_HTML_GETOBJECT")
    Print "msg",Msg&
    Print
    Error& = ~SendMessageTimeout(IEServerWnd&,Msg&,0,0,~SMTO_ABORTIFHUNG,1000,@Addr(Result&))
    Print "Error SendMessageTimeout",Error&
    Print "Result SendMessageTimeout",Result&
    @External("ole32","CoInitialize",0)
    oleacc& = @UseDLL("oleacc.dll")
    Print "oleacc",oleacc&
    Print
    StringToGUID("{332c4425-26cb-11d0-b483-00c04fd90119}",IID#)--IID_IHTMLDocument2
    Error& = @External("oleacc","ObjectFromLresult",Result&,IID#,0,@Addr(IHTMLDocument2&))
    Print "Error ObjectFromLresult",Error&
    Print "IHTMLDocument2",IHTMLDocument2&
    FreeDLL oleacc&
    Error& = CallMethod(IHTMLDocument2&,9,@Addr(IHTMLElement&))--IHTMLDocument2::get_body
    Print "Error IHTMLDocument2::get_body",Error&
    Print "IHTMLElement",IHTMLElement&
    Print
    ----------------------------------------------Quelltext ermitteln
    Error& = CallMethod(IHTMLElement&,62,@Addr(Text&))--IHTMLElement::get_outerHTML
    Print "Error IHTMLElement::get_outerHTML",Error&
    Print "Result get_outerHTML",Text&
    Print
    Text$ = OLE_WideToMulti(Text&)
    -------------------------------------------------------URL ermitteln
    Error& = CallMethod(IHTMLDocument2&,40,@Addr(Url&))--IHTMLElement::get_URL
    Print "Error IHTMLElement::get_URL",Error&
    Print "Result get_URL",URL&
    Print
    Url$ = OLE_WideToMulti(Url&)
    Print "URL = ";Url$
    Dispose IID#
    @External("ole32","CoUninitialize")
    Return Text$
    EndProc---------------------------------------------------------------------------------
    Window 0,0-800,600
    Declare Fenster&
    Declare Edit&
    Declare Quell$
    Declare IEServerWnd&
    Fenster& = ~FindWindow("IEFrame",0)--Hier könnte man auch andere Möglichkeiten nehmen,

    IfNot Fenster&---------------------z.B. Suche nach Fenstertitel.

        Print "Bitte IE starten!!"------Benötigt wird das gewünschte Hauptfenster des IE!
        WaitInput
        End

    EndIf

    Quell$ = RunningIE_GetText(Fenster&)

    If @Len(Quell$)

        Edit& = @Create("multiedit",%hwnd,"",300,20,450,500)----Text anzeigen
        SetText Edit&,Quell$

    EndIf

    './../../funktionsreferenzen/XProfan/waitkey/'>WaitKey
    End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
17.05.2006  
 



 
- Página 2 -



Michael
Wodrich
[quote:c61d21d565]
[quote:c61d21d565]
¿Por qué also no

Conjunto(P2CPP:...,1)
[/quote:c61d21d565]
2. XProfan sería una solche Anweisung con Unbekannter Schalter: P2PP... quittieren...
[/quote:c61d21d565]
Nein, IF meinte el neuen Befehl de XProfan10:
KompilierenMarcaSeparación
Nur veces así para Verständnis.

Schöne Grüße
Michael Wodrich

Wobei me gerade auffällt, el XPSE el neuen Befehle sí todos todavía beigebracht voluntad necesario. Un gute Gelegenheit para el Präprozessor-Schalter...
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 



[quote:25d48ad347]Wobei me gerade auffällt, el XPSE el neuen Befehle sí todos todavía beigebracht voluntad necesario. Un gute Gelegenheit para el Präprozessor-Schalter...[/quote:25d48ad347]
Einige 10él Yo el XPSE ya beigebracht - Yo bemühe mich auch el el Rest no así largo en se warten lässt.
 
24.05.2006  
 



@Sebastian: Yo mi sólo el Kommentare auch solche ser bleiben debería. Yo glaub uno podría irre voluntad si uno nun auch darauf achten debería qué el Comments beinhalten. Ne ne, Rems con Bedeutung - el find Yo garnicht bien!

Yo glaube una otro Solución muß her, y el no deshalb porque Yo el XPSE beibringen debería el Comments a parsen.
 
24.05.2006  
 




Sebastian
König
[quote:4dc4baa0c2]hay una Möglichkeit el CPP Source manuell así a ändern como später por Schalter ser se.
Como lo sí doch así unos pocos Problemas son (DLL necesario por UseDLL geladen voluntad, urlmon.dll funktioniert con manchen Links no mehr, Hotkeys ir no) sería Yo dies gerne veces versuchen.[/quote:4dc4baa0c2]
sí - klar Pero algo mühsam: Alle Externo y Call zwischen el Schaltern müssten en External_ST o. Call_ST geändert voluntad...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Michael
Wodrich
Und como wäre lo entonces hiermit?

$DEFINE Name: setzt una Condición
$UNDEF Name: setzt una Condición zurück

Es doch sowieso ausschließlich Futter para el Präcompiler. Hier kann Sebastian entonces el entsprechenden Namen vorgeben, el verwendet voluntad darf, z.B.:

$DEFINE p2cpp_irgendeinschalter

Damit braucht una continuación auch nichts neues a erfinden - XProfan 10 ha lo sí a Bord.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Sebastian
König
[quote:d6877f32d4]Das Conjunto(...,x) war ya bien - sólo debería lo sólo vom Präprozessor abgearbeitet voluntad.

Wenn XPSE ahora así una erweiterbaren Befehl bekäme, entonces könnten auch todos de Profano no verstandenen XPSE-Befehle como hinein.

$Conjunto(XPSE,cx)
$Conjunto(P2CPP,external_on)
$Conjunto(P2CPP,call_on)
...[/quote:d6877f32d4]
Solange Todo en una Kommentar es y somit Profano incluso no stört es sí ok - wobei Yo el Syntax ya fast a kompliziert finde... ;)

[quote:d6877f32d4]$DEFINE Name: setzt una Condición
$UNDEF Name: setzt una Condición zurück

Es doch sowieso ausschließlich Futter para el Präcompiler. Hier kann Sebastian entonces el entsprechenden Namen vorgeben, el verwendet voluntad darf, z.B.:

$DEFINE p2cpp_irgendeinschalter[/quote:d6877f32d4]
Eigentlich una schöne Concepto - aber desafortunadamente auch no abwärtskompatibel a älteren Profano-Versionen
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Sebastian
König
[quote:d01220718e]@Sebastian: Yo mi sólo el Kommentare auch solche ser bleiben debería. Yo glaub uno podría irre voluntad si uno nun auch darauf achten debería lo que el Comments beinhalten. Ne ne, Rems con Bedeutung - el find Yo garnicht bien![/quote:d01220718e]
Das sehe Yo wirklich anders - y lo son con el #!/bin/sh auch una bastante bekanntes Ejemplo para una Kommentar-Línea con Bedeutung!

Yo finde auch, uno debería todos no überbewerten: Lo va hier realmente una muy spezielle Situtation, nämlich a Beeinflussung el Übersetzung de Externo(), Call() para bastante cierto Teile des Codes - womöglich se el außer Georg en diesem Fall nichtmal alguien benötigen... In casi allen Fällen Es el bastante normale Übersetzung dieser Características sí völlig Haga clic en Aceptar!

Wenn uno dies bedenkt, es el con el Kommentaren wirklich el schönste Möglichkeit, el me así einfällt...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Michael
Wodrich
Und si uno de estos Spezialkommentaren determinado, daß davor kein Befehl posición darf - also después de beliebigen Whitespaces folgt el Kommentarzeichen con el Spezialbefehl - entonces läßt se el auch entsprechend herausfiltern (Kommentare ir sí a para Zeilenende).
Es entonces sí siempre en uno Línea para se.

Yo sehe el auch como einzige Möglichkeit para el Abwärtskompatibilität - y el ha se P2CPP sí en el Fahne geschrieben.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Georg
Hovenbitzer
[quote:fec088bf63]sí - klar Pero algo mühsam: Alle Externo y Call zwischen el Schaltern müssten en External_ST o. Call_ST geändert voluntad...[/quote:fec088bf63]
¡Hola Sebastian,

si yo lo correcto verstanden habe, muss Todavía sólo el Aufrufe el el Fehler verursachen con .._ST versehen y no define conjunto.
Wenn dies stimmt son no así viele
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 




Sebastian
König
¡Hola Georg,

[quote:e363eebe1e]si yo lo correcto verstanden habe, muss Todavía sólo el Aufrufe el el Fehler verursachen con .._ST versehen y no define conjunto.
Wenn dies stimmt son no así viele [/quote:e363eebe1e]
sí, aber así el Hilo-Kontext siempre stimmt, solltest Usted sicherheitshalber todos Aufrufe en el Prozeur Runningie_gettext adaptar.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 



 
- Página 3 -



Georg
Hovenbitzer
¡Hola Sebastian,

lo ha geklappt
Alle Externals y Calls el benötigt fueron geänder y nun se ejecuta alles sin Fehler
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
25.05.2006  
 



Como kann Yo sólo sagen Respekt Sebastian!

Was para una Akt!
 
25.05.2006  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.975 Views

Untitledvor 0 min.
Normann Strübli05.02.2023

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie