147 lines
7.8 KiB
HTML
147 lines
7.8 KiB
HTML
<HTML><HEAD><TITLE>Tcl Built-In Commands - dde manual page</TITLE></HEAD><BODY>
|
|
<DL>
|
|
<DD><A HREF="dde.htm#M2" NAME="L166">NAME</A>
|
|
<DL><DD>dde - Execute a Dynamic Data Exchange command</DL>
|
|
<DD><A HREF="dde.htm#M3" NAME="L167">SYNOPSIS</A>
|
|
<DL>
|
|
<DD><B>package require dde 1.1</B>
|
|
<DD><B>dde </B><I>servername </I>?<I>topic</I>?
|
|
<DD><B>dde ?-async?</B> <I>command service topic </I>?<I>data</I>?
|
|
</DL>
|
|
<DD><A HREF="dde.htm#M4" NAME="L168">DESCRIPTION</A>
|
|
<DL>
|
|
<DD><A HREF="dde.htm#M5" NAME="L169"><B>-async</B></A>
|
|
</DL>
|
|
<DD><A HREF="dde.htm#M6" NAME="L170">DDE COMMANDS</A>
|
|
<DL>
|
|
<DD><A HREF="dde.htm#M7" NAME="L171"><B>dde servername </B>?<I>topic</I>?</A>
|
|
<DD><A HREF="dde.htm#M8" NAME="L172"><B>dde execute </B><I>service topic data</I></A>
|
|
<DD><A HREF="dde.htm#M9" NAME="L173"><B>dde poke </B><I>service topic item data</I></A>
|
|
<DD><A HREF="dde.htm#M10" NAME="L174"><B>dde request </B><I>service topic item</I></A>
|
|
<DD><A HREF="dde.htm#M11" NAME="L175"><B>dde services </B><I>service topic</I></A>
|
|
<DD><A HREF="dde.htm#M12" NAME="L176"><B>dde eval </B><I>topic cmd </I>?<I>arg arg ...</I>?</A>
|
|
</DL>
|
|
<DD><A HREF="dde.htm#M13" NAME="L177">DDE AND TCL</A>
|
|
<DD><A HREF="dde.htm#M14" NAME="L178">SEE ALSO</A>
|
|
<DD><A HREF="dde.htm#M15" NAME="L179">KEYWORDS</A>
|
|
</DL><HR>
|
|
<H3><A NAME="M2">NAME</A></H3>
|
|
dde - Execute a Dynamic Data Exchange command
|
|
<H3><A NAME="M3">SYNOPSIS</A></H3>
|
|
<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>
|
|
<H3><A NAME="M4">DESCRIPTION</A></H3>
|
|
This command allows an application to send Dynamic Data Exchange (DDE)
|
|
command when running under Microsoft Windows. Dynamic Data Exchange is
|
|
a mechanism where applications can exchange raw data. Each DDE
|
|
transaction needs a <I>service name</I> and a <I>topic</I>. Both the
|
|
<I>service name</I> and <I>topic</I> are application defined; Tcl uses
|
|
the service name <B>TclEval</B>, while the topic name is the name of the
|
|
interpreter given by <B>dde servername</B>. Other applications have their
|
|
own <I>service names</I> and <I>topics</I>. For instance, Microsoft Excel
|
|
has the service name <B>Excel</B>.
|
|
<P>
|
|
The only option to the <B>dde</B> command is:
|
|
<P>
|
|
<DL>
|
|
<P><DT><A NAME="M5"><B>-async</B></A><DD>
|
|
Requests asynchronous invocation. This is valid only for the
|
|
<B>execute</B> subcommand. Normally, the <B>dde execute</B> subcommand
|
|
waits until the command completes, returning appropriate error
|
|
messages. When the <B>-async</B> option is used, the command returns
|
|
immediately, and no error information is available.
|
|
<P></DL>
|
|
<H3><A NAME="M6">DDE COMMANDS</A></H3>
|
|
The following commands are a subset of the full Dynamic Data Exchange
|
|
set of commands.
|
|
<P>
|
|
<DL>
|
|
<P><DT><A NAME="M7"><B>dde servername </B>?<I>topic</I>?</A><DD>
|
|
<B>dde servername</B> registers the interpreter as a DDE server with
|
|
the service name <B>TclEval</B> and the topic name specified by <I>topic</I>.
|
|
If no <I>topic</I> is given, <B>dde servername</B> returns the name
|
|
of the current topic or the empty string if it is not registered as a service.
|
|
<P><DT><A NAME="M8"><B>dde execute </B><I>service topic data</I></A><DD>
|
|
<B>dde execute</B> takes the <I>data</I> and sends it to the server
|
|
indicated by <I>service</I> with the topic indicated by
|
|
<I>topic</I>. Typically, <I>service</I> is the name of an application,
|
|
and <I>topic</I> is a file to work on. The <I>data</I> field is given
|
|
to the remote application. Typically, the application treats the
|
|
<I>data</I> field as a script, and the script is run in the
|
|
application. The command returns an error if the script did not
|
|
run. If the <B>-async</B> flag was used, the command
|
|
returns immediately with no error.
|
|
<P><DT><A NAME="M9"><B>dde poke </B><I>service topic item data</I></A><DD>
|
|
<B>dde poke</B> passes the <I>data</I> to the server indicated by
|
|
<I>service</I> using the <I>topic</I> and <I>item</I> specified. Typically,
|
|
<I>service</I> is the name of an application. <I>topic</I> is application
|
|
specific but can be a command to the server or the name of a file to work
|
|
on. The <I>item</I> is also application specific and is often not used, but
|
|
it must always be non-null. The <I>data</I> field is given to the remote
|
|
application.
|
|
<P><DT><A NAME="M10"><B>dde request </B><I>service topic item</I></A><DD>
|
|
<B>dde request</B> is typically used to get the value of something; the
|
|
value of a cell in Microsoft Excel or the text of a selection in
|
|
Microsoft Word. <I>service</I> is typically the name of an application,
|
|
<I>topic</I> is typically the name of the file, and <I>item</I> is
|
|
application-specific. The command returns the value of <I>item</I> as
|
|
defined in the application.
|
|
<P><DT><A NAME="M11"><B>dde services </B><I>service topic</I></A><DD>
|
|
<B>dde services</B> returns a list of service-topic pairs that
|
|
currently exist on the machine. If <I>service</I> and <I>topic</I> are
|
|
both null strings ({}), then all service-topic pairs currently
|
|
available on the system are returned. If <I>service</I> is null and
|
|
<I>topic</I> is not, then all services with the specified topic are
|
|
returned. If <I>service</I> is not null and <I>topic</I> is, all topics
|
|
for a given service are returned. If both are not null, if that
|
|
service-topic pair currently exists, it is returned; otherwise, null
|
|
is returned.
|
|
<P><DT><A NAME="M12"><B>dde eval </B><I>topic cmd </I>?<I>arg arg ...</I>?</A><DD>
|
|
<B>dde eval</B> evaluates a command and its arguments using the
|
|
interpreter specified by <I>topic</I>. The DDE service must be the
|
|
<B>TclEval</B> service. This command can be used to replace send on
|
|
Windows.
|
|
<P></DL>
|
|
<H3><A NAME="M13">DDE AND TCL</A></H3>
|
|
A Tcl interpreter always has a service name of <B>TclEval</B>. Each
|
|
different interpreter of all running Tcl applications must be
|
|
given a unique
|
|
name specified by <B>dde servername</B>. Each interp is available as a
|
|
DDE topic only if the <B>dde servername</B> command was used to set the
|
|
name of the topic for each interp. So a <B>dde services TclEval {}</B>
|
|
command will return a list of service-topic pairs, where each of the
|
|
currently running interps will be a topic.
|
|
<P>
|
|
When Tcl processes a <B>dde execute</B> command, the data for the
|
|
execute is run as a script in the interp named by the topic of the
|
|
<B>dde execute</B> command.
|
|
<P>
|
|
When Tcl processes a <B>dde request</B> command, it returns the value of the
|
|
variable given in the dde command in the context of the interp named by the
|
|
dde topic. Tcl reserves the variable <B>$TCLEVAL$EXECUTE$RESULT</B> for
|
|
internal use, and <B>dde request</B> commands for that variable will give
|
|
unpredictable results.
|
|
<P>
|
|
An external application which wishes to run a script in Tcl should have
|
|
that script store its result in a variable, run the <B>dde execute</B>
|
|
command, and the run <B>dde request</B> to get the value of the
|
|
variable.
|
|
<P>
|
|
When using DDE, be careful to ensure that the event queue is flushed
|
|
using either <B><A HREF="../TkCmd/update.htm">update</A></B> or <B><A HREF="../TkCmd/vwait.htm">vwait</A></B>. This happens by default
|
|
when using <B><A HREF="../UserCmd/wish.htm">wish</A></B> unless a blocking command is called (such as <B><A HREF="../TkCmd/exec.htm">exec</A></B>
|
|
without adding the <B>&</B> to place the process in the background).
|
|
If for any reason the event queue is not flushed, DDE commands may
|
|
hang until the event queue is flushed. This can create a deadlock
|
|
situation.
|
|
|
|
<H3><A NAME="M14">SEE ALSO</A></H3>
|
|
<B><A HREF="../TclCmd/tk.htm">tk</A></B>, <B><A HREF="../TclCmd/winfo.htm">winfo</A></B>, <B><A HREF="../TclCmd/send.htm">send</A></B>
|
|
<H3><A NAME="M15">KEYWORDS</A></H3>
|
|
<A href="../Keywords/A.htm#application">application</A>, <A href="../Keywords/D.htm#dde">dde</A>, <A href="../Keywords/N.htm#name">name</A>, <A href="../Keywords/R.htm#remote execution">remote execution</A>
|
|
<HR><PRE>
|
|
<A HREF="../copyright.htm">Copyright</A> © 1997 Sun Microsystems, Inc.
|
|
<A HREF="../copyright.htm">Copyright</A> © 1995-1997 Roger E. Critchlow Jr.</PRE>
|
|
</BODY></HTML>
|