[R] Fonctionnement d'UDF

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[R] Fonctionnement d'UDF

#1

Message 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 ?
Modifié en dernier par yohan8 le jeu. 05 juin 2014 17:02, modifié 1 fois.
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Fonctionnement d'UDF

#2

Message 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.
Avatar du membre
jchd
AutoIt MVPs (MVP)
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

#3

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fonctionnement d'UDF

#4

Message 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:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Fonctionnement d'UDF

#5

Message 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 !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Fonctionnement d'UDF

#6

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [R] Fonctionnement d'UDF

#7

Message 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:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fonctionnement d'UDF

#8

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [R] Fonctionnement d'UDF

#9

Message 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.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Fonctionnement d'UDF

#10

Message par jguinch »

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 !
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [R] Fonctionnement d'UDF

#11

Message 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)
Répondre