Page 1 sur 1

[R] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 13:30
par yohan8
Hello,

Je me lance dans la compréhension du fonctionnement de l'UDF IE.au3.

Ma méthode est simple, j'intègre l'UDF entière dans mon script et je découpe les parties qui ne m'intéresse pas.
Je ne peux publier le code car trop long mais celui-ci contient l'UDF de IE.au3 + WinAPIError.au3 (car appelé dans IE.au3) de tel sorte que mon script est 100% autonome et ne va pas chercher d'autre fonction autre part (c'est ce qu'on fait lorsque compile non ? )

Cependant même cette méthode ne fonctionne pas car j'ai l'erreur "$__IEAU3V1Compatibility".
D’où vient cette erreur ?

Re: [..] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 13:49
par TomAijerrie
Salut,

Je ne peut pas te dire d'où ça viens si tu ne donne pas plus d'indice, mais je crois que le problème est surtout que l'UDF IE.au3 fait référence à une version très ancienne d'internet explorer qui n'est certainement pas compatible avec des PC trop récents.

Sinon, est-ce que ton script marche en utilisant #include <> ?


Pour si est de ton script trop long, tu peux toujours le compresser dans une archive .zip par exemple, après avoir supprimé toutes les éventuelles données personnelles.

Re: [..] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 15:24
par jchd
l'UDF IE.au3 fait référence à une version très ancienne d'internet explorer qui n'est certainement pas compatible avec des PC trop récents.
Ah bon ? Et ça vient d'où ça ?

Sinon il n'est pas recommandé d'émasculer une partie d'un UDF standard pour inclusion propriétaire. Dès la prochaine release, le script restera dans l'état avec éventuellement les bogues de l'ancienne version. C'est une approche à réserver à des cas vraiment tordus où il est virtuellement impossible de faire autrement.

Re: [..] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 15:38
par mikell
La variable $__IEAU3V1Compatibility (déclarée en Global en tête d'udf) existe dans la version 2 de IE.au3 (AutoIt v3.3.8.1)
Tu devrais mettre à jour

La dissection d'udf n'est pas recommandée
Pour comprendre comment marchent les fonctions, vaut mieux passer par une bonne lecture de leur code

Edit
jchd est passé par là :mrgreen:

Re: [..] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 17:01
par yohan8
C'était uniquement de la dissection pour mieux comprendre l'UDF et ses fonctions.
C'est comme lorsqu'on prend un script de qualité pour l'étudier et apprendre de nouvelles fonctions.

Une petite mise à jour et une longue relecture s'impose donc !

Re: [..] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 17:03
par TommyDDR
yohan8 a écrit :c'est ce qu'on fait lorsque compile non ?
C'est ce que le compilateur fait en effet mais en aucun cas cela est fait à la main.
La directive "include" est là pour vous faciliter la vie à la base, associée à "include-once" cela vous permet d'inclure des UDF qui peuvent eux aussi en inclure d'autre alors que vous les avez déjà inclus... tous cela sans vous prendre la tête à "est ce que je l'ai déjà inclus ?", "Est ce que ça va compiler ?" etc.

Re: [R] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 17:18
par yohan8
Mais du coup si on inclus tous les UDF dans un seul script, le tout peut fonctionner non ?
Le but est de savoir quel UDF inclus quel autre UDF.? Dans mon exemple, comment savoir quel UDF supplémentaire est inclus par include-once ?
sans vous prendre la tête
:mrgreen:

Re: [R] Fonctionnement d'UDF

Posté : jeu. 05 juin 2014 18:28
par TommyDDR
Oui, vous pouvez tout inclure dans un seul fichier, mais cela ne sert à rien, le fait d'écrire "include" le fait pour vous à la compilation.

#include-once sert à n'inclure un fichier qu'une seule fois, comme ça, même si vous vous trompez et incluez plusieurs fois le fichier, celui ci ne sera réellement inclus qu'une fois.
Je ne vois pas pourquoi vous voulez inclure les UDFs à la main.

Re: [R] Fonctionnement d'UDF

Posté : ven. 06 juin 2014 14:03
par TomAijerrie
mikell a écrit :La variable $__IEAU3V1Compatibility (déclarée en Global en tête d'udf) existe dans la version 2 de IE.au3 (AutoIt v3.3.8.1)
Tu devrais mettre à jour
Où peut-on trouver la dernière mise à jour des UDF ?

Dans la version 3.3.12 d'autoit, la version de l'UDF IE.au3 est
Version: T3.0-1
Last Update: 13/06/02
Il n'y aurait pas un problème de date par hasard ? , la version T3.0-0 date de 2012...

Merci d’avance.

Re: [R] Fonctionnement d'UDF

Posté : ven. 06 juin 2014 14:38
par jguinch
C'est vrai que la date est un peu bizarre... Mais c'est bien la dernière version stable..

Re: [R] Fonctionnement d'UDF

Posté : ven. 06 juin 2014 17:16
par yohan8
Ce que je désire c'est cisailler l'UDF de IE.au3 pour récupérer et comprendre les fonctions "objet" utilisé par autoit comme :

Code : Tout sélectionner

$oIE.navigate ("about&#058;blank")
$oIE.document.body.BGCOLOR
$oIE.document.body.background
$oIE.document.body.scroll
$oIE.document.body.style.border
$oObject.visible
$oWindow.LocationURL
$oWindow.document.body.innerText
...
 
Car finalement, l'UDF de IE ne fait qu'utiliser ces "fonctions objet" et interprète les erreurs. J'ai lu ce tuto sans trouver une liste partielle ou complète des ces fonctions objet.

D'ailleurs j'aimerais retrouver le code qui est lancé lorsqu'on utilise des fonctions basique comme "String", "GUICreate", "DllOpen" (les fonctions dont les Includes sont inclus par défaut dans autoit)