dde Commandes Internes Tcl
NOM
dde - Exécute une commande Dynamic Data Exchange
SYNTAXE
package require dde 1.1
dde servername ?topic?
dde ?-async? command service topic ?data?
DESCRIPTION
Cette commande permet à une application d'envoyer une commande Dynamic Data Exchange (DDE) sous Microsoft Windows. Dynamic Data Exchange est un mécanisme qui permet aux applications d'échanger des données . Chaque transaction DDE a besoin d'un service name et d'un topic. L'ensemble de service name et topic sont définis par l'application; Tcl utilise le nom de service TclEval, et le nom du topic est le nom de l'interpréteur donné par dde servername. D'autres applications ont leurs propres service names et topics. Par exemple, Microsoft Excel a le nom de service Excel.
La seule option de la commande
dde est:
- -async
- Demande un appel asynchrone. Ceci est valide seulement pour la sous-commande execute. Normalement, la sous-commande dde execute attend jusqu'à ce que la commande se termine, en retournant un message d'erreur approprié. Quand l'option - async est utilisée, la commande retourne immédiatement, et aucune information d'erreur n'est disponible.
COMMANDES DDE
Les commandes suivantes sont un sous ensemble des commandes Dynamic Data Exchange.
- dde servername ?topic?
- dde servername déclare l'interpréteur comme serveur DDE avec le nom de service TclEval et le nom de topic spécifié par topic. Si aucun topic n'est donné, dde servername retourne le nom du topic courant ou une chaîne vide s'il n'est pas declaré comme un service.
dde execute service topic data
- dde execute prends data et l'envoie au serveur indiqué par service avec le topic indiqué par topic. Typiquement, service est le nom d'une application, et topic est un fichier à traiter. Le champ data est donné à l'application distante. Typiquement, l'application traite le champ data comme un script, et le script est lancé dans l'application. La commande retourne une erreur si le script n'est pas exécuté. Si le flag -async a été utilisé, la commande retourne immédiatement sans erreur.
dde poke service topic item data
- dde poke passes les data au serveur indiqué par service en utilisant les topic et item spécifié. Typiquement, service est le nom d'un application. topic est spécifique à l'application mais peut être une commande au serveur ou le nom d'un fichier à traiter. L' item est aussi spécifique à l'application et est souvent non utilisé, mais il doit toujours être non-null. Le champ data est transmis à l'application distante.
dde request service topic item
- dde request est typiquement utilisé pour récupérer une valeur; la valeur d'une cellule dans Microsoft Excel ou le texte d'une selection dans Microsoft Word. service est typiquement le nom de l'application, topic est typiquement le nom du fichier, et item est spécifique à l'application. La commande retourne la valeur de item comme défini dans l'application.
dde services service topic
- dde services retourne une liste de service-topic pairs qui existe actuellement sur la machine. Si service et topic sont tous deux des null chaînes ({}), alors toute les paires service-topic disponibles sur le système sont renvoyées. Si service est null et topic non, alors tout les services avec le topic spécifié sont renvoyés. Si service n'est pas null et que topic est null, tout les topics pour un service donné sont renvoyés. Si les deux ne sont pas null, si cette paire service-topic existe actuellement, elle est renvoyée; autrement, null est renvoyé.
dde eval topic cmd ?arg arg ...?
- dde eval évalue une commande et ses arguments en utilisant l'interpréteur spécifié par topic. Le service DDE doit être le service TclEval. Cette commande peut être utilisée pour remplacer send sous Windows.
DDE ET TCL
Un Interpréteur Tcl a toujours pour nom de service TclEval. A chaque interpréteur différent parmi toutes les applications Tcl en cours doit être donné un nom unique spécifié par dde servername. Chaque interp est disponible comme topic DDE seulement si la commande dde servername a été utilisée pour fixer le nom du topic pour chaque interp. Donc une commande dde services TclEval {} renverra une liste de paires service-topic, où chacun des interpréteurs qui s'exécutent actuellement seront un topic.
Quand Tcl traite une commande dde execute, les données de execute sont exécutées comme script dans l'interpréteur designé par les topic de la commande dde execute.
Quand Tcl traite une commande dde request, il retourne la valeur de la variable donnée dans la commande dde dans le contexte de l'interpréteur designé par le topic dde. Tcl reserve la variable $TCLEVAL$EXECUTE$RESULT pour usage interne, et une commande dde request pour cette variable donnera un résultat imprévisible.
Une application externe qui souhaite exécuter un script Tcl aura besoin que le script stocke son résultat dans une variable, devra exécuter la commande dde execute, puis dde request pour obtenir la valeur de la variable.
En utilisant DDE, assurez vous soigneusement que la file d'évènements est vidée en utilisant soit
update ou
vwait. Ceci se produit par défaut en utilisant
wish à moins qu'une commande bloquante soit appelée (telle que
exec sans ajouter le
& pour envoyer le processus en arrière-plan). Si pour une raison quelconque la file d'évènements n'est pas vidée, les commandes DDE peuvent se figer jusqu'a ce que la file d'évènements soit vidée. Ceci peut créer une situation d'impasse (" deadlock " N.D.T.).
VOIR EGALEMENT
tk, winfo, send
Dernière révision: 8.1