[UDF] AutoIt Application Extension

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

[UDF] AutoIt Application Extension

#1

Message par TT22 »

Bonjour à tous !

Suite à ce sujet, j'ai eu l'idée de créer un UDF qui permettrait de créer des extensions d'applications en AutoIt (pour AutoIt) et de pouvoir les utiliser par le biais d'un autre script (comme les DLLs pour Windows).

Donc, voici l'UDF :
► Afficher le texte
L'utilisation est assez simple, vous pour créer une extension, incluez l'UDF et appelez la fonction "_AAEInit()" au début de votre script. Puis ajoutez des fonctions à la suite. Et voilà !
Pour appeler une des fonctions présentes dans l'extension utilisez la fonction "_AAECall()".

Cet UDF fonctionne pour les scripts compilés où non et permet d'utiliser des extensions en AU3, A3X et EXE.

Voici un zip contenant un exemple d'utilisation et d'extensions :
AAE.zip
(286.93 Kio) Téléchargé 381 fois
Voilà, n'hésitez pas à poser des questions si mon explication n'est pas très claire :wink:
Cordialement,
TT22
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#2

Message par Tlem »

La simple association de la nouvelle extension sous Windows suffit largement ! Généralement ceci est fait lors de l'installation du programme qui doit utiliser cette nouvelle extension.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#3

Message par TT22 »

En fait, je crois que je me suis mal expliqué :?
Cet UDF permet d'exécuter des fonctions présentes dans un autre script que celui en cours d'exécution (comme avec des DLL mais en AutoIt).
Et cela fonctionne pour les scripts AU3, A3X et EXE.
Ce qui peu par la suite permettre de modifier une fonctionnalité d'une application sans changer tout le script.
Cordialement,
TT22
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#4

Message par jguinch »

Bonjour
Super travail ! (rapide en+ :) ), ça répond exactement à ma problématique...

Petite suggestion : plutôt que de renvoyer le résultat dans un fichier temporaire, pourquoi ne pas passer par une code de sortie (exit) et récupérer le résultat avec shellexecute ?

Pour ma part, vu le trou de sécurité que représente l'externalisation des fonctions, je partirai sur les DLL (plus difficile à craquer...) ; autrement dit, c'est pas pour demain !

En tout cas, bravo et merci !
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#5

Message par matwachich »

Pour la communication entre les scripts, préférez des UDF fais pour ça, je pense surtout à:
- MailSlot.au3
- Message.au3
à voir sur le forum anglais
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#6

Message par jchd »

Il faudrait quand même souligner les nombreuses limitations inhérentes à ces méthodes.

EDIT: je fais référence au post initial !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#7

Message par TT22 »

[color=#000000]jguinchard[/color] a écrit :Pour ma part, vu le trou de sécurité que représente l'externalisation des fonctions
Il suffit d'utiliser des fichiers A3X qui sont quand même assez bien protégés :wink:
[color=#000000]jguinchard[/color] a écrit :pourquoi ne pas passer par une code de sortie (exit) et récupérer le résultat avec shellexecute
J'y avait pensé, mais ça ne fonctionne pas si la fonction retourne une chaine de caractères :?
[color=#FF6600]matwachich[/color] a écrit :Pour la communication entre les scripts, préférez des UDF fais pour ça
Merci, je vais regarder ça :)
[color=#0000FF]jchd[/color] a écrit :Il faudrait quand même souligner les nombreuses limitations inhérentes à ces méthodes
À propos des retours de fonction dans des fichiers ? Du passage de paramètres ?
Cordialement,
TT22
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#8

Message par Tlem »

Effectivement, l'idée est intéressante et le système mis en place, bien trouvé. Cela oblige une certaine gymnastique, mais au moins, cela permet une ouverture intéressante vers le lancement de code extérieur.

Juste un petit reproche, c'est qu'il reste nécessaire d'avoir AAE.au3 en include du code externe. Pour de l'exe ou de l'a3x, c'est pas grave, mais pour du au3, cela oblige de rajouter le fichier et je trouve que ça limite pas mal de chose.

L'idéal aurait été un système identique aux fonctions 'PluginOpen/PluginClose' et qui libèrerait la contrainte de cet include sur le code externe.

L'idée de pouvoir lancer des fonctions sur des fichiers au3, a3x et exe (AutoIt) partait d'un bon sentiment, mais limite le champ d'action.
Comme cela oblige l'include de l'UDF des deux cotés, je pense qu'une simple fonction de traitement des arguments suffirait largement sans avoir besoin de rajouter quoi que ce soit. Le tout est de bien penser le fichier de code externe.

En faisant au plus simple et en image, voici ce que je veux dire :
► Afficher le texte
Edit : Bon, il y a eu quelques messages pendant la rédaction du miens. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#9

Message par jchd »

Pour les limitations, elles portent sur : type et volume des paramètres et du retour, traitement alambiqué des conditions d'erreur, lenteur et lourdeur de l'invocation, inaccessibilité des valeurs globales de l'autre côté, asymétrie des contextes (PID, droits, etc.) et je dois en oublier bien sûr.

Tout ça limite donc les possibilités d'utilisation et ne prêche pas en faveur d'une généralisation en dehors de cas très limités AMHA.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#10

Message par Tlem »

+1
Mais cela avait déjà été évoqué cher ami : http://www.autoitscript.fr/forum/viewto ... 396#p75396
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#11

Message par jguinch »

Dans le même style, avec MailSlot :
InterProcess UDF - Runs a remote function!
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Maurice
Niveau 3
Niveau 3
Messages : 37
Enregistré le : jeu. 01 nov. 2012 18:20
Localisation : Une région à bulles (pas de l'eau)
Status : Hors ligne

Re: [UDF] AutoIt Application Extension

#12

Message par Maurice »

J'aime beaucoup l'idée. :D
Les DLL dans AutoIt sont limitées si l'on ne connait pas le C++.
Avec cette "méthode" il est plus facile d'inclure des fonctions, des PATH, ... susceptibles de
changer et donc de les mettre à jour sans re-compiler l'application mère.
Répondre