Programmation automate
<span class="mw-headline" id="Programmation_automate« >Programmation automate
Conçu pour permettre aux différents logiciels de communiquer les uns avec les autres, l’OLE (Object Linking and Embedding) architecture basée sur COM. Basé sur ce modèle, il existe plusieurs «services» dont une qui nous préoccupe aujourd’hui, ‘OLE Automation, qui permet de définir des objets PLC (Automation Objects). La mise en œuvre de cette technique est souvent liée à l’utilisation d’un langage de script comme VBScript Par exemple (mais il est également possible d’utiliser d’autres langages tels que JScript, la version Microsoft de JavaScript).
Ouvrir une feuille de calcul Excel dans un document Word est typique de la technologie «OLE Automation» ou «ActiveX Automation. Chaque application supportant ce service a ses modèles propre objet, ce qui ne facilite pas la tâche du programmeur lors de la documentation fait défaut. Applications ‘Office’ de Microsoft, cependant, sont bien documentées (par exemple Excel / Visual Basic Applications).
Dans notre exemple, le client demande ‘Excel’, va interagir avec un automate objet ‘Word’ de découvrir dynamiquement les objets et les méthodes disponibles sur cette application.Pour pratiquer ce type de relation entre deux applications, nous allons utiliser JScript, mais il faut savoir que d’autres méthodes existent, mais simplement que l’outil utilisé est ‘compatible’ avec ‘OLE Automation’ pour que cela fonctionne.
La «liaison» est la façon dont le langage de script utilisé par l’application cliente (ou «contrôleur Automation») auront accès à des objets disponibles sur l’application ‘destination’, également appelé ‘serveur Automation.’ Ces deux notions, «contrôleur Automation’ et ‘serveur Automation’ sont très révélateurs. En effet, dans notre exemple, ‘Word’ fait méthodes disponibles, les objets (on peut donc considérer comme un serveur), destinés à être utilisés par ‘Excel’, qui représente l’application ‘contrôleur’, ce qui va agir sur l’objet ‘PLC’ de «Word».
Avant de pouvoir afficher les propriétés, méthodes, événements Object Model ‘serveur d’automatisation’, ‘contrôleur d’automatismes’ doit créer une instance de la classe qu’il souhaite utiliser. Ici, Jscript, et VB ne fonctionne pas de la même façon.
VB et VBScript sont les plus riches et peut utiliser deux types de liaison. Lorsque ‘contrôleur d’automatismes’ tente d’accéder à des «ressources» du «serveur», VB doit vérifier si ces objets, méthodes, fonctions, existent et si cette «demande» a été correctement effectuées.Cela est également connu comme le «contraignant».
Pour résumer, (la version longue se trouve ici), la «liaison tardive» se produit lors de l’exécution du programme, il est le moins efficace des deux types. Il est mis en œuvre comme suit:
Visual Basic devraient consulter chaque fois que le sujet ‘excelApp’ est utilisé si ses méthodes, propriétés, sont utilisés correctement. Cela implique des contrôles au système d’exploitation et le niveau de l’application qui fournit l’objet en question. En outre, VB ne connaît pas le type d’objet référencé ‘excelApp’ avant l’exécution, il doit fournir suffisamment de mémoire, donc surestimée.
La ‘liaison anticipée’ est une solution plus efficace, qui se produit au moment de la compilation plutôt que run.Thus, lors de l’exécution du code, VB n’a pas à se soucier de l’exactitude des informations relatives à l’objet. Cependant, tous les ‘serveur d’automatisation’ ne peut pas tolérer ce type de liaison. Il en est ainsi que le ‘serveur’ a une référence de la bibliothèque d’objets, de méthodes et d’autres propriétés liées à l’objet qui veut accéder à de liaison»,«le contrôleur d’automatismes On dirait que la création de ce. ‘:
Malheureusement nous ne pouvons pas utiliser ce type de ‘liaison’ dans JScript. Deux raisons:- Le JScript est interprété, donc pas de l’étape de compilation avant l’exécution .- Le JScript n’est pas dactylographié, nous ne pouvons pas déclarer une variable comme un type d’objet spécifique.
‘ExcelApp’ pour manipuler l’objet instancié. La fonction, ActiveXObjet () prend comme paramètre le nom d’une application (ici ‘Excel’) et le type d’objet à créer (ici ‘d’application’). Un paramètre optionnel permet de définir un serveur, mais ne sera pas abordée ici.
Maintenant, pour un peu d’exercice sur ‘Word’: Copiez le code suivant dans un fichier ‘version_word.htm», par exemple, et si vous avez cette demande, le numéro de version de celui-ci apparaisse dans un message d’alerte si vous sélectionnez ou accepter une temporaires (!) le fonctionnement d’un contrôle ActiveX sur votre ordinateur (les réglages sont effectués dans le menu ‘Outils –