59 lines
7.5 KiB
HTML
59 lines
7.5 KiB
HTML
<HTML><HEAD>
|
|
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
|
|
</HEAD>
|
|
<BODY>
|
|
<div><H3><b>dde Commandes Internes Tcl</b></H3></div>
|
|
<HR ALIGN="center">
|
|
<div><b>NOM</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">dde - Exécute une commande Dynamic Data Exchange
|
|
</div><br>
|
|
<div><b>SYNTAXE</b></div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;"><br>
|
|
<b>package require dde 1.1</b> <br>
|
|
<b>dde </b><i>servername </i>?<i>topic</i>? <br>
|
|
<b>dde ?-async?</b> <i>command service topic </i>?<i>data</i>? <br>
|
|
</div><br>
|
|
<div><b>DESCRIPTION</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">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 <i>service name</i> et d'un <i>topic</i>. L'ensemble de <i>service name</i> et <i>topic</i> sont définis par l'application; Tcl utilise le nom de service <b>TclEval</b>, et le nom du topic est le nom de l'interpréteur donné par <b>dde servername</b>. D'autres applications ont leurs propres <i>service names</i> et <i>topics</i>. Par exemple, Microsoft Excel a le nom de service <b>Excel</b>. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">La seule option de la commande <b>dde</b> est:
|
|
<DL>
|
|
<DT><b>-async</b><br></DT><DD>Demande un appel asynchrone. Ceci est valide seulement pour la sous-commande<b> execute</b>. Normalement, la sous-commande<b> dde execute</b> attend jusqu'à ce que la commande se termine, en retournant un message d'erreur approprié. Quand l'option <b>-</b> <b>async</b> est utilisée, la commande retourne immédiatement, et aucune information d'erreur n'est disponible. <br>
|
|
</DD>
|
|
</DL>
|
|
</div>
|
|
<div><b>COMMANDES DDE</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Les commandes suivantes sont un sous ensemble des commandes Dynamic Data Exchange.
|
|
<DL>
|
|
<DT><b>dde servername </b>?<i>topic</i>?</DT><DD><b>dde servername</b> déclare l'interpréteur comme serveur DDE avec le nom de service <b>TclEval</b> et le nom de topic spécifié par <i>topic</i>. Si aucun <i>topic</i> n'est donné, <b>dde servername</b> retourne le nom du topic courant ou une chaîne vide s'il n'est pas declaré comme un service.
|
|
</DD>
|
|
<DT><br>
|
|
<b>dde execute </b><i>service topic data</i><br></DT><DD><b>dde execute</b> prends <i>data</i> et l'envoie au serveur indiqué par <i>service</i> avec le topic indiqué par <i>topic</i>. Typiquement, <i>service</i> est le nom d'une application, et <i>topic</i> est un fichier à traiter. Le champ <i>data</i> est donné à l'application distante. Typiquement, l'application traite le champ <i>data</i> 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 <b>-async</b> a été utilisé, la commande retourne immédiatement sans erreur.
|
|
</DD>
|
|
<DT><br>
|
|
<b>dde poke </b><i>service topic item data</i><br></DT><DD><b>dde poke</b> passes les <i>data</i> au serveur indiqué par <i>service</i> en utilisant les <i>topic</i> et <i>item</i> spécifié. Typiquement, <i>service</i> est le nom d'un application. <i>topic</i> est spécifique à l'application mais peut être une commande au serveur ou le nom d'un fichier à traiter. L' <i>item</i> est aussi spécifique à l'application et est souvent non utilisé, mais il doit toujours être non-null. Le champ <i>data</i> est transmis à l'application distante.
|
|
</DD>
|
|
<DT><br>
|
|
<b>dde request </b><i>service topic item</i><br></DT><DD><b>dde request</b> 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. <i>service</i> est typiquement le nom de l'application, <i>topic</i> est typiquement le nom du fichier, et <i>item</i> est spécifique à l'application. La commande retourne la valeur de <i>item</i> comme défini dans l'application.
|
|
</DD>
|
|
<DT><br>
|
|
<b>dde services </b><i>service topic</i><br></DT><DD><b>dde services</b> retourne une liste de service-topic pairs qui existe actuellement sur la machine. Si <i>service</i> et <i>topic</i> sont tous deux des null chaînes ({}), alors toute les paires service-topic disponibles sur le système sont renvoyées. Si <i>service</i> est null et <i>topic</i> non, alors tout les services avec le topic spécifié sont renvoyés. Si <i>service</i> n'est pas null et que <i>topic</i> 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é.
|
|
</DD>
|
|
<DT><br>
|
|
<b>dde eval </b><i>topic cmd </i>?<i>arg arg ...</i>?<br></DT><DD><b>dde eval</b> évalue une commande et ses arguments en utilisant l'interpréteur spécifié par <i>topic</i>. Le service DDE doit être le service<b> TclEval</b>. Cette commande peut être utilisée pour remplacer <i>send</i> sous Windows. <br>
|
|
</DD>
|
|
</DL>
|
|
</div>
|
|
<div><b><FONT FACE="Times New Roman" SIZE=2>DDE ET TCL</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Un Interpréteur Tcl a toujours pour nom de service <b>TclEval</b>. A chaque interpréteur différent parmi toutes les applications Tcl en cours doit être donné un nom unique spécifié par <b>dde servername</b>. Chaque interp est disponible comme topic DDE seulement si la commande <b>dde servername</b> a été utilisée pour fixer le nom du topic pour chaque interp. Donc une commande <b>dde services TclEval {}</b> renverra une liste de paires service-topic, où chacun des interpréteurs qui s'exécutent actuellement seront un topic. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Quand Tcl traite une commande<b> dde execute</b>, les données de <b>execute</b> sont exécutées comme script dans l'interpréteur designé par les topic de la commande<b> </b><b>dde execute</b>. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Quand Tcl traite une commande<b> dde request</b>, 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 <b>$TCLEVAL$EXECUTE$RESULT</b> pour usage interne, et une commande <b>dde request</b> pour cette variable donnera un résultat imprévisible. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">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<b> dde execute</b>, puis <b>dde request</b> pour obtenir la valeur de la variable. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">En utilisant DDE, assurez vous soigneusement que la file d'évènements est vidée en utilisant soit <A HREF="176.htm"><b>update</b></A> ou <A HREF="180.htm"><b>vwait</b></A>. Ceci se produit par défaut en utilisant <A HREF="318.htm"><b>wish</b></A> à moins qu'une commande bloquante soit appelée (telle que <A HREF="105.htm"><b>exec</b></A> sans ajouter le <b>&</b> 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.).
|
|
</div><br>
|
|
<div><b>VOIR EGALEMENT</b></div>
|
|
<br><div ALIGN="LEFT" style="margin-left: 51px;">tk, winfo, send </div>
|
|
<br><div>Dernière révision: 8.1</div>
|
|
<br>
|
|
<div ALIGN="CENTER"><br><A HREF="index.htm"><b>Index</b></A> <A HREF="99.htm"><b>Précédent</b></A> <A HREF="101.htm"><b>Suivant</b></A></div>
|
|
</BODY></HTML>
|