projman/hlp/fr/tcl/dde.htm

59 lines
7.5 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<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<45>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 <20> 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'<27>changer des donn<6E>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<70>teur donn<6E> 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'<27> ce que la commande se termine, en retournant un message d'erreur appropri<72>. Quand l'option <b>-</b> <b>async</b> est utilis<69>e, la commande retourne imm<6D>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<70>teur comme serveur DDE avec le nom de service <b>TclEval</b> et le nom de topic sp<73>cifi<66> par <i>topic</i>. Si aucun <i>topic</i> n'est donn<6E>, <b>dde servername</b> retourne le nom du topic courant ou une cha<68>ne vide s'il n'est pas declar<61> 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<71> par <i>service</i> avec le topic indiqu<71> par <i>topic</i>. Typiquement, <i>service</i> est le nom d'une application, et <i>topic</i> est un fichier <20> traiter. Le champ <i>data</i> est donn<6E> <20> l'application distante. Typiquement, l'application traite le champ <i>data</i> comme un script, et le script est lanc<6E> dans l'application. La commande retourne une erreur si le script n'est pas ex<65>cut<75>. Si le flag <b>-async</b> a <20>t<EFBFBD> utilis<69>, la commande retourne imm<6D>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<71> par <i>service</i> en utilisant les <i>topic</i> et <i>item</i> sp<73>cifi<66>. Typiquement, <i>service</i> est le nom d'un application. <i>topic</i> est sp<73>cifique <20> l'application mais peut <20>tre une commande au serveur ou le nom d'un fichier <20> traiter. L' <i>item</i> est aussi sp<73>cifique <20> l'application et est souvent non utilis<69>, mais il doit toujours <20>tre non-null. Le champ <i>data</i> est transmis <20> 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<69> pour r<>cup<75>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<73>cifique <20> 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<68>nes (&#123;}), alors toute les paires service-topic disponibles sur le syst<73>me sont renvoy<6F>es. Si <i>service</i> est null et <i>topic</i> non, alors tout les services avec le topic sp<73>cifi<66> sont renvoy<6F>s. Si <i>service</i> n'est pas null et que <i>topic</i> est null, tout les topics pour un service donn<6E> sont renvoy<6F>s. Si les deux ne sont pas null, si cette paire service-topic existe actuellement, elle est renvoy<6F>e; autrement, null est renvoy<6F>.
</DD>
<DT><br>
<b>dde eval </b><i>topic cmd </i>?<i>arg arg ...</i>?<br></DT><DD><b>dde eval</b> <20>value une commande et ses arguments en utilisant l'interpr<70>teur sp<73>cifi<66> par <i>topic</i>. Le service DDE doit <20>tre le service<b> TclEval</b>. Cette commande peut <20>tre utilis<69>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<70>teur Tcl a toujours pour nom de service <b>TclEval</b>. A chaque interpr<70>teur diff<66>rent parmi toutes les applications Tcl en cours doit <20>tre donn<6E> un nom unique sp<73>cifi<66> par <b>dde servername</b>. Chaque interp est disponible comme topic DDE seulement si la commande <b>dde servername</b> a <20>t<EFBFBD> utilis<69>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<70>teurs qui s'ex<65>cutent actuellement seront un topic. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Quand Tcl traite une commande<b> dde execute</b>, les donn<6E>es de <b>execute</b> sont ex<65>cut<75>es comme script dans l'interpr<70>teur design<67> 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<6E>e dans la commande dde dans le contexte de l'interpr<70>teur design<67> 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<70>visible. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Une application externe qui souhaite ex<65>cuter un script Tcl aura besoin que le script stocke son r<>sultat dans une variable, devra ex<65>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'<27>v<EFBFBD>nements est vid<69>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> <20> moins qu'une commande bloquante soit appel<65>e (telle que <A HREF="105.htm"><b>exec</b></A> sans ajouter le <b>&amp;</b> pour envoyer le processus en arri<72>re-plan). Si pour une raison quelconque la file d'<27>v<EFBFBD>nements n'est pas vid<69>e, les commandes DDE peuvent se figer jusqu'a ce que la file d'<27>v<EFBFBD>nements soit vid<69>e. Ceci peut cr<63>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<EFBFBD>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<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="101.htm"><b>Suivant</b></A></div>
</BODY></HTML>