projman/hlp/fr/tcl/dde.htm
2015-10-19 14:27:31 +04:00

59 lines
7.5 KiB
HTML

<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>dde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>?&nbsp; <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 (&#123;}), 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 &#123;}</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>&#36;TCLEVAL&#36;EXECUTE&#36;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>&amp;</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 (&quot; deadlock &quot; 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>&nbsp;&nbsp;<A HREF="99.htm"><b>Précédent</b></A>&nbsp;&nbsp;<A HREF="101.htm"><b>Suivant</b></A></div>
</BODY></HTML>