IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Automatiser des Applications en Delphi avec la DLL AutoItDll

Je vais vous présenter dans cet article un outil fort sympathique, qui permet de prendre le contrôle d'une application externe. Cette bibliothèque est un freeware et elle est développée par la société HiddenSoft.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Avant-Propos

Cette DLL permet d'intégrer directement les fonctions dans les fichiers programmes de votre application. Sinon AutoIt existe sous forme de langage de scripts et la version téléchargeable est la version 2. Une version 3 plus aboutie est à l'étude qui permet de réaliser sa propre interface graphique (à voir absolument). Celle-ci est un outil permettant d'automatiser un certain nombre d'actions, comme l'appui sur une touche de clavier, les événements liés à la souris (clic, double clic, etc.), mais aussi la gestion des fenêtres (minimiser, agrandir, remplissage des zones de texte, gestion du temps d'attente, etc.). Donc cette bibliothèque ne se limite pas à lancer un exe, c'est un outil assez complet. Je vais vous expliquer maintenant comment cette bibliothèque fonctionne sous Delphi (eh oui ! il existe bien une version Delphi, et bien sûr une version C++ mais aussi Vb).

II. Installation et premiers pas

Je vais vous expliquer comment télécharger cette bibliothèque et l'installer, et ensuite dans un second volet comment préparer son utilisation sous Delphi.

II-A. L'Installation de la bibliothèque

Avant de commencer, il faut télécharger la bibliothèque pour pouvoir l'utiliser. Pour ce faire il faut se rendre sur le site de Hiddensoft. Il vous faut juste la version DLL. Donc rendez-vous directement sur la page de téléchargement, et téléchargez juste le fichier zippé AutoItDll. Une fois qu'il a été transféré sur votre ordinateur et dézippé, vous devriez vous retrouver avec le contenu suivant :

Image non disponible

Maintenant que vous avez tous les fichiers nécessaires pour travailler, il vous faut maintenant déplacer les fichiers suivants :

Image non disponible
Image non disponible

Dans le répertoire où se trouvent les fichiers source de votre application. Une fois cette opération effectuée, il faut inclure le fichier AutoItDll.pas dans un fichier unité .pas de votre application. Pour ce faire il faut utiliser ceci :

 
Sélectionnez
uses AutoItDll;

Ceci fait, il vous est possible d'entreprendre les travaux à effectuer pour automatiser une application. Je vais faire un petit tour d'horizon pour vous présenter les fonctions clés de cette bibliothèque. Pour plus de détails, reportez-vous au fichier d'aide qui donne de très nombreuses informations sur l'utilisation de cette bibliothèque.

II-B. Les fonctions fournies par cette dll

Je vais vous faire un inventaire des fonctions que j'ai le plus utilisées personnellement. Mais pour avoir une vision plus large de la richesse de cette bibliothèque, il est important de consulter le fichier d'aide associé. Pour reconnaître ces fonctions, ce n'est pas très compliqué, elles portent toutes le préfixe AUTOIT_. Pour ce faire, c'est simple il suffit d'ouvrir le fichier d'aide associé AutoItDll.chm et de regarder au niveau de Dll functions :

Image non disponible

Comme vous pouvez le constater, les fonctions sont rangées par thèmes, ce qui est plus aisé pour s'y retrouver.

III. Utilisation des fonctions

Tout d'abord avant de pouvoir utiliser la bibliothèque de fonctions, il faut lancer l'application « cible ». Ceci se fait tout simplement en utilisant la fonction WinExec dont je vous rappelle la syntaxe :

 
Sélectionnez
WinExec(nom_application, options);

où l'on a :

nom_application : nom de l'exécutable ;
options : dans notre cas on va utiliser l'option SW_SHOW.

Il reste une petite opération à réaliser pour que l'on puisse avoir le focus sur la nouvelle fenêtre application que l'on vient de lancer. Pour ce faire il faut utiliser la fonction suivante :

 
Sélectionnez
FindWindowA(titre_application, 0);

titre_application est le titre qui apparaît dans la barre de titre.

Donc on peut directement employer les fonctions de la bibliothèque sur la fenêtre application que l'on vient d'ouvrir. Nous allons voir maintenant comment il est possible, grâce à cette kyrielle de fonctions, de naviguer dans l'application cible et d'en prendre ainsi le contrôle. Pour pouvoir passer d'un objet à l'autre, il faut se souvenir que dans la plupart des cas, cela se fait par l'intermédiaire de la touche de tabulation. Pour envoyer ce type de caractère spécial, on va utiliser la fonction AUTOIT_Send qui permet comme son nom l'indique d'envoyer un caractère à l'application cible et dont la syntaxe est la suivante :

 
Sélectionnez
AUTOIT_Send(*Char szLine);

Comme on peut le constater, on va envoyer comme paramètre à cette fonction un pointeur sur une chaîne de caractères. Avec cette fonction il est possible d'envoyer des caractères spéciaux de la façon suivante :

pour simuler le caractère spécial de tabulation :

 
Sélectionnez
AUTOIT_Send(PChar('{TAB}'));

pour simuler le caractère spécial de validation :

 
Sélectionnez
AUTOIT_Send(PChar('{ENTER}'));

pour forcer l'écriture en majuscules/minuscules :

 
Sélectionnez
AUTOIT_Send(PCHar('{CAPS_LOCK}'));

Ce qui est particulièrement intéressant avec celle-ci c'est que l'on peut remplir des objets de l'application cible, par exemple les zones de texte, les barres de titres. Cela se fait toujours par l'intermédiaire de la fonction AUTOIT_Send avec en paramètre un pointeur sur la chaîne de caractères. Par exemple :

 
Sélectionnez
AUTOIT_Send(PChar('DEBUT'));

Donc nous avons vu que l'on pouvait réaliser un certain nombre de tâches par l'intermédiaire de la fonction AUTOIT_Send. Cependant cette bibliothèque ne se limite pas à cette seule fonction. En effet il est possible de réaliser une temporisation pour, par exemple, attendre qu'une application soit complètement chargée. Pour réaliser ceci, il faut utiliser la fonction AUTOIT_Sleep(temps) où temps est le temps en millisecondes.

 
Sélectionnez
AUTOIT_Sleep(5000);

Vous possédez maintenant les bases nécessaires pour utiliser cette bibliothèque pour vos propres applications. Pour plus d'informations, lisez le fichier d'aide fourni avec le zip, et allez consulter le site de l'auteur.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2005 Christopher PECAUD. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.