[R] Fonctionnement d'UDF
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- yohan8
- Niveau 6

- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
[R] Fonctionnement d'UDF
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 ?
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 ?
Modifié en dernier par yohan8 le jeu. 05 juin 2014 17:02, modifié 1 fois.
- TomAijerrie
- Niveau 5

- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Fonctionnement d'UDF
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.
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.
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Fonctionnement d'UDF
Ah bon ? Et ça vient d'où ça ?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 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Fonctionnement d'UDF
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à
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à
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- yohan8
- Niveau 6

- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [..] Fonctionnement d'UDF
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 !
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 !
- TommyDDR
- Modérateur

- Messages : 2128
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Fonctionnement d'UDF
C'est ce que le compilateur fait en effet mais en aucun cas cela est fait à la main.yohan8 a écrit :c'est ce qu'on fait lorsque compile non ?
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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- yohan8
- Niveau 6

- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [R] Fonctionnement d'UDF
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 ?

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
- TommyDDR
- Modérateur

- Messages : 2128
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Fonctionnement d'UDF
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.
#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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- TomAijerrie
- Niveau 5

- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: [R] Fonctionnement d'UDF
Où peut-on trouver la dernière mise à jour des UDF ?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
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
C'est vrai que la date est un peu bizarre... Mais c'est bien la dernière version stable..
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- yohan8
- Niveau 6

- Messages : 245
- Enregistré le : mer. 07 déc. 2011 22:34
- Localisation : Rhône
- Status : Hors ligne
Re: [R] Fonctionnement d'UDF
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 :
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)
Code : Tout sélectionner
$oIE.navigate ("about: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
...
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)
