Français
C ++ Forum

Retour Wert stimmt pas

 
- page 1 -



Georg
Hovenbitzer
allô Sebastian,

j'ai la fois wieder un größeres Problem.
qui geniale folgende Code stammt vom Pascal, soetwas pourrait je Je ne ausdenken.
il ermittelt den Quellcode aus einem geöffneten IE la fenêtre, comment z.B. www.google.de.
Zum Test s'il te plaît aucun grand page prendre, là qui Zuweisung zum Éditer champ im Beispielt encore per SetText allez.

Im Interpreter et comme Profan Exe fonctionne il super, übersezt venez toujours une Schutzverletzung.
qui la ligne qui den faute verursacht ist qui:
Error& = CallMethod(IHTMLElement&,62,@Addr(Text&))

qui Grund ist pour, dass qui Aufruf devant de:
Error& = CallMethod(IHTMLDocument2&,9,@Addr(IHTMLElement&))

une Error& numéro <> 0 zurückt gibt et IHTMLElement&, juste 0 ist.

Könnte cet Problem des Übersetzen son ?
KompilierenMarqueSéparation
 $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
    Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
17.05.2006  
 



 
- page 2 -



Michael
Wodrich
[quote-part:c61d21d565]
[quote-part:c61d21d565]
pourquoi alors pas

Set(P2CPP:...,1)
[/quote-part:c61d21d565]
2. XProfan serait une solche Anweisung avec Unbekannter commutateur: P2PP... quittieren...
[/quote-part:c61d21d565]
non, iF meinte den neuen Befehl de XProfan10:
KompilierenMarqueSéparation
seulement la fois so zum Verständnis.

belle Grüße
Michael Wodrich

Wobei mir justement auffällt, cela XPSE qui neuen Befehle oui alle encore beigebracht volonté doit. une gute Gelegenheit pour den Präprozessor-commutateur...
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 



[quote-part:25d48ad347]Wobei mir justement auffällt, cela XPSE qui neuen Befehle oui alle encore beigebracht volonté doit. une gute Gelegenheit pour den Präprozessor-commutateur...[/quote-part:25d48ad347]
quelques 10il habe je dem XPSE déjà beigebracht - je bemühe mich aussi cela qui reste pas so longtemps sur sich attendre peut.
 
24.05.2006  
 



@Sebastian: je mon seulement cela Kommentare aussi solche son rester devrait. je glaub on pourrait irre volonté si on eh bien aussi puis achten sollte quoi qui Comments beinhalten. Ne ne, Rems avec signification - cela find je garnicht bien!

je crois une autre Solution doit her, et cela pas c'est pourquoi weil je dem XPSE beibringen devrait qui Comments trop parsen.
 
24.05.2006  
 




Sebastian
König
[quote-part:4dc4baa0c2]gibt es une Possibilité qui CPP Source manuel so trop changement comme später per commutateur son wird.
là es oui doch so un paire Probleme gibt (DLL doit per UseDLL geladen volonté, urlmon.dll funktioniert avec manchen à gauche pas plus, Hotkeys aller pas) serait je ca volontiers la fois versuchen.[/quote-part:4dc4baa0c2]
oui - bien sûr Ist mais quelque chose mühsam: Alle Externe et Call entre den Schaltern müssten dans External_ST bzw. Call_ST geändert volonté...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Michael
Wodrich
et comment wäre es ensuite hiermit?

$DEFINE nom: mets une Condition
$UNDEF nom: mets une Condition zurück

c'est doch sowieso ausschließlich Futter pour qui Präcompiler. ici peux Sebastian ensuite den entsprechenden Namen vorgeben, qui verwendet volonté darf, z.B.:

$DEFINE p2cpp_irgendeinschalter

avec cela braucht on ensuite aussi rien nouveau trop erfinden - XProfan 10 hat es oui à Bord.

belle Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Sebastian
König
[quote-part:d6877f32d4]cela Set(...,x) était déjà bien - seulement sollte es arrêt vom Präprozessor abgearbeitet volonté.

si XPSE maintenant so une erweiterbaren Befehl bekäme, ensuite könnten aussi alle de Profan pas verstandenen XPSE-Befehle là hinein.

$Set(XPSE,cx)
$Set(P2CPP,external_on)
$Set(P2CPP,call_on)
...[/quote-part:d6877f32d4]
Solange cela ganze dans einem Kommentar steht et somit Profan selbst pas stört ist es oui ok - wobei je qui Syntax déjà presque trop compliqué finde... ;)

[quote-part:d6877f32d4]$DEFINE nom: mets une Condition
$UNDEF nom: mets une Condition zurück

c'est doch sowieso ausschließlich Futter pour qui Präcompiler. ici peux Sebastian ensuite den entsprechenden Namen vorgeben, qui verwendet volonté darf, z.B.:

$DEFINE p2cpp_irgendeinschalter[/quote-part:d6877f32d4]
Eigentlich une belle concept - mais malheureusement aussi pas abwärtskompatibel trop älteren Profan-Versionen
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Sebastian
König
[quote-part:d01220718e]@Sebastian: je mon seulement cela Kommentare aussi solche son rester devrait. je glaub on pourrait irre volonté si on eh bien aussi puis achten sollte quoi qui Comments beinhalten. Ne ne, Rems avec signification - cela find je garnicht bien![/quote-part:d01220718e]
cela vois je wirklich anders - et il y a avec dem #!/suis/sh aussi un droite bekanntes Beispiel pour une Kommentar-la ligne avec signification!

je trouve aussi, on sollte cela ganze pas überbewerten: und dir ici vraiment de une très spezielle Situtation, nämlich à Beeinflussung qui Übersetzung de Externe(), Call() pour entier bestimmte Teile des Codes - womöglich wird cela sauf Georg dans diesem le cas nichtmal quelqu'un besoin... dans si bien comment allen Fällen ist qui entier normale Übersetzung cette Funktionen oui völlig dans Ordre!

si on ca bedenkt, ist cela avec den Kommentaren wirklich qui schönste Possibilité, qui mir so einfällt...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Michael
Wodrich
et si on chez cette Spezialkommentaren bestimmt, qui devant ne...aucune Befehl stehen darf - alors pour beliebigen Whitespaces folgt cela Kommentarzeichen avec dem Spezialbefehl - ensuite läßt sich cela aussi entsprechend herausfiltern (Kommentare aller oui jusqu'à zum Zeilenende).
c'est ensuite oui toujours sur einer la ligne pour sich.

je vois cela aussi comme einzige Possibilité pour qui Abwärtskompatibilität - et qui hat sich P2CPP oui sur qui drapeau geschrieben.

belle Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Georg
Hovenbitzer
[quote-part:fec088bf63]oui - bien sûr Ist mais quelque chose mühsam: Alle Externe et Call entre den Schaltern müssten dans External_ST bzw. Call_ST geändert volonté...[/quote-part:fec088bf63]
allô Sebastian,

si je es richtig verstanden habe, muss je doch seulement qui Aufrufe qui den faute verursachen avec .._ST versehen et aucun define mettons.
si ca stimmt sommes es pas so viele
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 




Sebastian
König
allô Georg,

[quote-part:e363eebe1e]si je es richtig verstanden habe, muss je doch seulement qui Aufrufe qui den faute verursachen avec .._ST versehen et aucun define mettons.
si ca stimmt sommes es pas so viele [/quote-part:e363eebe1e]
oui, mais avec cela qui Fil-Kontext toujours stimmt, devrait Du sicherheitshalber alle Aufrufe dans qui Prozeur Runningie_gettext anpassen.

MfG

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



 
- page 3 -



Georg
Hovenbitzer
allô Sebastian,

es hat geklappt
Alle Externals et Calls qui nécessaire wurden geänder et eh bien fonctionne alles sans faute
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
25.05.2006  
 



là peux je seulement dire Respekt Sebastian!

quoi pour un Akt!
 
25.05.2006  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.748 Views

Untitledvor 0 min.
Normann Strübli05.02.2023

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie