Utilisation d'ActiveX avec LabVIEW

Aide LabVIEW 2014

Date d'édition : June 2014

Numéro de référence : 371361L-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

Pour accéder aux objets, aux propriétés, aux méthodes et aux événements associés à d'autres applications supportant ActiveX, vous pouvez utiliser LabVIEW comme client ActiveX. Pour autoriser d'autres applications à accéder aux objets, aux propriétés et aux méthodes LabVIEW, vous pouvez également utiliser LabVIEW comme serveur ActiveX. Reportez-vous à la page ActiveX and LabVIEW sur ni.com pour en savoir plus sur l'utilisation de la technologie ActiveX avec LabVIEW.

Objets, propriétés et méthodes ActiveX

Les applications pour lesquelles ActiveX est activé incluent des objets dont les propriétés et les méthodes exposées sont accessibles à d'autres applications. Les objets peuvent être des objets visibles par les utilisateurs, comme des boutons, des fenêtres, des images, des documents et des boîtes de dialogue, ou des objets que l'utilisateur ne peut pas visualiser, comme des objets applications. Vous accédez à une application en accédant à un objet associé à cette application, et en paramétrant une propriété ou en appelant une méthode de cet objet.

Événements ActiveX

Les événements sont les actions effectuées sur un objet, telles que cliquer avec une souris ou appuyer sur une touche du clavier. Chaque fois que ces actions s'effectuent sur l'objet, celui-ci envoie un événement pour prévenir le conteneur ActiveX, accompagné des données propres à cet événement. L'objet ActiveX définit les événements disponibles pour un objet.

Pour utiliser les événements ActiveX dans une application, vous devez vous abonner à ces événements et les gérer lorsqu'ils se produisent. L'abonnement à des événements ActiveX est semblable à l'abonnement dynamique à des événements. Dans l'abonnement dynamique aux événements, vous devez placer une structure Événement dans une boucle While, câbler une référence d'objet à cette structure Événement et sélectionner l'événement que LabVIEW doit générer. Par exemple, vous pouvez appeler une commande Windows de type arbre à partir d'un conteneur ActiveX et spécifier que vous voulez générer un événement Double clic pour les éléments affichés dans la commande arbre. Cependant, l'architecture d'un VI d'événement ActiveX est différente de celle d'un VI de gestion d'événement car vous devez utiliser la fonction Enregistrer un VI Callback d'événement au lieu de la fonction S'abonner à des événements pour spécifier et abonner les événements.

Remarque  National Instruments vous recommande d'utiliser la fonction Se désabonner aux événements pour vous désabonner à ces événements lorsque vous n'avez plus besoin de les gérer. Si vous ne vous désabonnez pas aux événements, LabVIEW continue à générer les événements et à les placer en file d'attente tant que le VI s'exécute, même si aucune structure Événement n'attend de les gérer, ce qui gaspille de la mémoire et peut bloquer le VI si vous activez le verrouillage de la face-avant pour les événements.

Reportez-vous au tableau suivant pour obtenir des informations sur les composants de génération d'événements ActiveX et d'abonnement à ces événements dans LabVIEW.

Composant Description Utilisation
Objet ActiveX Objet ActiveX pour lequel vous voulez générer un événement. Après avoir sélectionné l'objet ActiveX pour lequel vous voulez générer un événement, vous pouvez utiliser un refnum automation pour spécifier l'événement.
Fonction Enregistrer un VI Callback d'événement Cette fonction est un nœud extensible capable de gérer plusieurs événements, semblable à la fonction S'abonner à des événements. Après avoir câblé une référence d'objet ActiveX à la fonction Enregistrer un VI Callback d'événement, vous pouvez spécifier le ou les événements que vous voulez générer pour cet objet. Lorsque vous spécifiez le ou les événements à générer pour un objet, vous abonnez cet objet ActiveX à ce ou ces événements.
VI Callback Ce VI contient le code que vous écrivez pour gérer un événement. Vous pouvez créer ce VI après vous être abonné à un événement en utilisant la fonction Enregistrer un VI Callback d'événement. Différents événements peuvent avoir des formats de données d'événement différents. Pour cette raison, si vous modifiez l'événement après avoir créé un VI Callback, les fils de liaison du diagramme risquent d'être brisés. Sélectionnez l'événement avant de créer le VI Callback.

VIs, fonctions, commandes et indicateurs ActiveX

Reportez-vous au tableau suivant pour obtenir des informations sur les VIs, les fonctions, les commandes et les indicateurs à utiliser pour accéder aux objets, aux propriétés, aux méthodes et aux événements associés à d'autres applications pour lesquelles ActiveX est activé :

Nom du VI, de la fonction , de la commande ou de l'indicateur Description Exemple Comment l'utiliser
Commande refnum Automation Cette commande crée une référence à un objet ActiveX. Vous pouvez créer une référence à un document Word intégré dans un conteneur ActiveX sur la face-avant d'un VI. Cliquez avec le bouton droit sur cette commande de la face-avant pour sélectionner un objet de la bibliothèque de types à laquelle vous voulez accéder.
Fonction Automation Ouvrir Cette fonction ouvre un objet ActiveX. Vous pouvez utiliser cette fonction pour ouvrir un document Microsoft Excel. Cliquez avec le bouton droit sur cette fonction et choisissez Sélectionner la classe ActiveX pour choisir la classe de l'objet dans le menu local. Après avoir ouvert le refnum, vous pouvez le passer en argument à d'autres fonctions ActiveX.
Conteneur ActiveX Ce conteneur accède à l'objet ActiveX et l'affiche sur la face-avant. Vous pouvez utiliser le conteneur ActiveX pour afficher un bouton associé à une autre application pour laquelle ActiveX est activé, comme un navigateur Web. Cliquez avec le bouton droit sur le conteneur et sélectionnez Insérer un objet ActiveX dans le menu local. Puis sélectionnez l'objet auquel vous souhaitez accéder.
Nœud de propriété Cette fonction obtient (lit) et définit (écrit) les propriétés associées à un objet ActiveX. Vous pouvez utiliser cette fonction pour définir les propriétés d'un objet que vous intégrez à un conteneur ActiveX sur la face-avant. Cliquez avec le bouton droit sur un objet ActiveX, sur la face-avant ou sur le diagramme, et sélectionnez Créer»Nœud de propriété. Puis sélectionnez une propriété dans le menu local pour définir une propriété pour l'objet.
Nœud de méthode Cette fonction appelle les méthodes associées à un objet ActiveX. De la même façon que vous définissez les propriétés avec un nœud de propriété, vous pouvez utiliser cette fonction pour appeler les méthodes d'un objet qui se trouve dans un conteneur ActiveX de la face-avant. Cliquez avec le bouton droit sur un objet ActiveX, sur la face-avant ou sur le diagramme, et sélectionnez Créer»Nœud de méthode. Puis sélectionnez une méthode dans le menu local pour appeler une méthode pour l'objet.
Enregistrer un VI Callback d'événement Cette fonction gère les événements qui se produisent sur un objet ActiveX. Vous pouvez utiliser cette fonction pour générer un événement, comme l'ajout de données dans une feuille de calcul Microsoft Excel, et vous y abonner.
Commande et indicateur variant Ensemble, cette commande et cet indicateur transmettent des données aux commandes ActiveX et vice-versa. Vous pouvez utiliser cette commande et cet indicateur pour transmettre des données à une application pour laquelle ActiveX est activé, comme Microsoft Excel ou Microsoft Word, et vice-versa. Naviguez jusqu'à la palette Variant et classe pour trouver cette commande ou cet indicateur et déposez-le sur la face-avant ou sur le diagramme.

Mappage des types de données

LabVIEW convertit les types de données de certaines propriétés et méthodes ActiveX en types de données LabVIEW pour pouvoir lire et interpréter ces données. Le tableau suivant liste les types de données ActiveX et les types de données LabVIEW convertis correspondants.

Type de données ActiveX Type de données LabVIEW
char ,
short ,
long ,
hyper ,
float ,
double
BSTR ,

LabVIEW en tant que client ActiveX

Lorsque LabVIEW accède à des objets associés à une autre application pour laquelle ActiveX est activé, LabVIEW agit comme un client ActiveX. Vous pouvez utiliser LabVIEW comme client ActiveX de l'une des manières suivantes :

  • Ouvrir une application (Microsoft Excel, par exemple), créer un document et lui ajouter des données.
  • Intégrer un document, tel qu'un document Microsoft Word ou un document de type tableur d'Excel, sur la face-avant dans un conteneur.
  • Placer un bouton ou tout autre objet d'une autre application sur la face-avant, par exemple un bouton d'Aide qui appelle le fichier d'aide de l'autre application.
  • Lier un contrôle ActiveX que vous avez construit dans une autre application.

LabVIEW accède à un objet ActiveX par la commande Refnum Automation et par le conteneur ActiveX, qui sont tous deux des objets de la face-avant. Utilisez la commande Refnum Automation pour sélectionner un objet ActiveX. Utilisez le conteneur ActiveX pour sélectionner un objet ActiveX affichable, comme un bouton ou un document, et placez cet objet sur la face-avant. Les objets s'affichent tous deux comme commandes refnums automation dans le diagramme.

Mode de conception des objets ActiveX

Lorsque vous sélectionnez l'option mode de conception, le conteneur ActiveX est propriétaire des références aux contrôles, et se charge de créer et de libérer de nouveaux contrôles. Les contrôles ont des modes de conception et d'exécution différents. Chaque fois que vous exécutez un VI, LabVIEW supprime le contrôle en mode de conception et le remplace par un nouveau contrôle en mode d'exécution. Lorsque le VI s'arrête, LabVIEW supprime le contrôle en mode d'exécution et crée un nouveau contrôle en mode de conception. La relation entre le mode de conception et le mode d'exécution lorsque vous utilisez ActiveX et LabVIEW est similaire à celle qui existe entre le mode d'édition et le mode d'exécution dans d'autres domaines de programmation LabVIEW, tels que les scripts de VI et VI Serveur.

Les applications construites n'incluent pas de contrôle en mode de conception. LabVIEW crée le contrôle en mode d'exécution lorsque le VI démarre et libère le contrôle lorsque le VI s'arrête. LabVIEW ne génère des événements qu'en mode d'exécution, mais pas en mode de conception. Le mode par défaut est le mode exécution.

Reportez-vous à l'illustration suivante pour obtenir des informations sur la configuration du mode conception.

Méthodes de définition des propriétés ActiveX

Après avoir appelé un serveur ActiveX ou inséré un contrôle ou un document ActiveX, vous pouvez définir les propriétés associées à ce contrôle ou à ce document en utilisant le navigateur de propriétés de contrôles ActiveX, les pages de propriétés et le nœud de propriété.

Nom Description Comment y accéder
Navigateur de propriétés de contrôles ActiveX Utilisez ce navigateur pour voir et définir toutes les propriétés associées à un contrôle ActiveX ou à un document dans un conteneur ActiveX. Le navigateur de propriétés de contrôles ActiveX est un moyen simple de définir la valeur des propriétés d'un objet ActiveX de manière interactive.
Remarque  Vous ne pouvez utiliser le navigateur pour définir des propriétés qu'en mode Édition et uniquement avec des objets ActiveX situés dans un conteneur.
Accédez au navigateur de propriétés de contrôles ActiveX d'une des manières suivantes :
  1. Cliquez avec le bouton droit sur le contrôle ou le document dans le conteneur sur la face-avant et sélectionnez Navigateur de propriétés dans le menu local.
  2. Sélectionnez Affichage»Navigateur de propriétés de contrôles ActiveX
Pages de propriétés ActiveX De nombreux objets ActiveX comprennent des pages de propriétés, qui organisent les propriétés associées aux objets sous des onglets séparés.

Tout comme le navigateur de propriétés de contrôles ActiveX, les pages de propriétés ActiveX sont un moyen simple de définir les propriétés d'un objet ActiveX de manière interactive. De même, vous ne pouvez utiliser les pages de propriétés pour définir des propriétés qu'en mode Édition et uniquement avec des objets ActiveX situés dans un conteneur.
Remarque  Les objets ActiveX ne disposent pas tous de pages de propriétés.
Pour accéder aux pages de propriétés ActiveX, cliquez avec le bouton droit sur l'objet situé dans le conteneur de la face-avant et sélectionnez le nom de l'objet dans le menu local.
Nœuds de propriété Utilisez le nœud de propriété pour définir les propriétés ActiveX par programmation. Suivez les étapes ci-dessous pour utiliser un nœud de propriété pour définir des propriétés ActiveX par programmation.
  1. Obtenez une référence à l'objet ActiveX pour lequel vous souhaitez créer une propriété ActiveX.
  2. Ajoutez un nœud de propriété au diagramme.
  3. Câblez la référence à l'objet à l'entrée référence du nœud.

L'exemple de diagramme représenté ci-dessous montre comment utiliser un nœud de propriété pour modifier, par programmation, la propriété Valeur d'un contrôle ActiveX afin d'avertir un utilisateur quand une température dépasse une certaine limite. La propriété Valeur du contrôle ActiveX CWButton, qui fait partie de la bibliothèque ActiveX de l'interface utilisateur Measurement Studio de National Instruments, est modifiée quand la température atteint ou dépasse 85 degrés Fahrenheit.

Dans cet exemple, le contrôle CWButton se comporte comme un voyant (LED), change de couleur et affiche Mise en garde quand la température atteint la limite, ce qui correspond à l'état ON du contrôle CWButton.

Remarque  Au lieu de définir par programmation les propriétés OffText, OffColor, OnText et OnColor pour le contrôle CWButton, vous pouvez utiliser le navigateur de propriétés de contrôles ActiveX ou les pages de propriétés pour définir les propriétés de ces contrôles.

LabVIEW en tant que serveur ActiveX

Vous pouvez accéder à une application LabVIEW, à des VIs ainsi qu'à des propriétés et méthodes pour les contrôles via des appels ActiveX à partir d'autres applications. D'autres applications pour lesquelles ActiveX est activé, comme Microsoft Excel, peuvent demander des propriétés, des méthodes et des VIs individuels à LabVIEW. LabVIEW se comporte comme un serveur ActiveX.

Par exemple, vous pouvez intégrer un VI graphe dans un fichier au format tableur d'Excel et, à partir du fichier au format tableur, entrer des données dans les entrées du VI et exécuter le VI. Lorsque vous exécutez le VI, les données s'enregistrent sous forme de tracé dans le graphe.

Support pour les interfaces ActiveX Automation personnalisées

Si vous écrivez vers un client ActiveX tiers qui utilise LabVIEW pour accéder aux propriétés et méthodes d'un serveur ActiveX LabVIEW, vous pouvez accéder aux interfaces personnalisées exposées par le serveur. Vous n'avez pas besoin d'utiliser IDispatch.

Toutefois, le développeur du serveur ActiveX doit s'assurer que les paramètres des propriétés et des méthodes contenues dans ces interfaces personnalisées ont des types de données Automation (IDispatch). Le développeur du serveur doit s'assurer que les paramètres ont le type de données Automation (IDispatch) afin d'exposer plusieurs interfaces à partir d'un seul objet, plutôt qu'à partir de plusieurs objets. Sans le type de données Automation, vous devez établir une connexion pour chaque objet que vous souhaitez connecter plutôt qu'une seule connexion. Vous pouvez toujours utiliser ces interfaces dans l'environnement LabVIEW.

Utilisation de constantes pour définir des paramètres dans les VIs ActiveX

Certains paramètres des nœuds ActiveX acceptent une liste d'un certain nombre de valeurs valides. Sélectionnez le nom de description dans la constante menu déroulant pour définir ces valeurs de paramètres.

Pour accéder à la constante menu déroulant pendant la construction d'un VI ActiveX, cliquez avec le bouton droit sur le paramètre du nœud acceptant les valeurs des données et créez une constante. Les sélections disponibles dans la constante menu déroulant sont fonction des refnums transmis au nœud. Pour afficher la valeur des données numériques correspondante, cliquez avec le bouton droit sur la constante menu déroulant et sélectionnez Éléments visibles»Afficheur numérique dans le menu local.

Les diagrammes suivants illustrent comment utiliser des constantes numériques et menu déroulant pour définir les valeurs des paramètres. Les diagrammes accèdent à l'application Microsoft Excel et exécutent une méthode, et le paramètre Index inclut plusieurs options. Lorsque vous sélectionnez une option, LabVIEW affiche la valeur numérique correspondante de cette option.

Comme l'illustre le diagramme suivant, LabVIEW affiche par défaut la valeur numérique de l'option actuellement sélectionnée, MicrosoftAccess, dans une boîte située à côté de la constante menu déroulant.

Cependant, vous pouvez également choisir d'afficher la valeur numérique d'une option dans une constante numérique. Comme l'illustre le diagramme suivant, LabVIEW affiche la valeur numérique d'une option dans une constante numérique câblée à l'entrée Index.

Chargement de VIs avec une bibliothèque de types ActiveX mise à jour

Lorsque vous chargez un VI dont une version majeure de la bibliothèque de types ActiveX a été modifiée, LabVIEW lance une boîte de dialogue de mise en garde vous informant de cette modification. Lorsque vous chargez un VI dont la version mineure d'une bibliothèque de types ActiveX ou l'horodatage a été modifié, un astérisque apparaît dans la barre de titre du VI, une fois celui-ci chargé, ainsi que dans la liste des VIs ouverts affichés dans le menu Fenêtre. Lorsque vous enregistrez le VI, l'astérisque disparaît jusqu'au prochain changement.

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile