- NAME
- dde - Execute a Dynamic Data Exchange command
- SYNOPSIS
- package require dde 1.1
- dde servername ?topic?
- dde ?-async? command service topic ?data?
- DESCRIPTION
- -async
- DDE COMMANDS
- dde servername ?topic?
- dde execute service topic data
- dde poke service topic item data
- dde request service topic item
- dde services service topic
- dde eval topic cmd ?arg arg ...?
- DDE AND TCL
- SEE ALSO
- KEYWORDS
dde - Execute a Dynamic Data Exchange command
package require dde 1.1
dde servername ?topic?
dde ?-async? command service topic ?data?
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 service name and a topic. Both the
service name and topic are application defined; Tcl uses
the service name TclEval, while the topic name is the name of the
interpreter given by dde servername. Other applications have their
own service names and topics. For instance, Microsoft Excel
has the service name Excel.
The only option to the dde command is:
- -async
-
Requests asynchronous invocation. This is valid only for the
execute subcommand. Normally, the dde execute subcommand
waits until the command completes, returning appropriate error
messages. When the -async option is used, the command returns
immediately, and no error information is available.
The following commands are a subset of the full Dynamic Data Exchange
set of commands.
- dde servername ?topic?
-
dde servername registers the interpreter as a DDE server with
the service name TclEval and the topic name specified by topic.
If no topic is given, dde servername returns the name
of the current topic or the empty string if it is not registered as a service.
- dde execute service topic data
-
dde execute takes the data and sends it to the server
indicated by service with the topic indicated by
topic. Typically, service is the name of an application,
and topic is a file to work on. The data field is given
to the remote application. Typically, the application treats the
data 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 -async flag was used, the command
returns immediately with no error.
- dde poke service topic item data
-
dde poke passes the data to the server indicated by
service using the topic and item specified. Typically,
service is the name of an application. topic is application
specific but can be a command to the server or the name of a file to work
on. The item is also application specific and is often not used, but
it must always be non-null. The data field is given to the remote
application.
- dde request service topic item
-
dde request 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. service is typically the name of an application,
topic is typically the name of the file, and item is
application-specific. The command returns the value of item as
defined in the application.
- dde services service topic
-
dde services returns a list of service-topic pairs that
currently exist on the machine. If service and topic are
both null strings ({}), then all service-topic pairs currently
available on the system are returned. If service is null and
topic is not, then all services with the specified topic are
returned. If service is not null and topic 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.
- dde eval topic cmd ?arg arg ...?
-
dde eval evaluates a command and its arguments using the
interpreter specified by topic. The DDE service must be the
TclEval service. This command can be used to replace send on
Windows.
A Tcl interpreter always has a service name of TclEval. Each
different interpreter of all running Tcl applications must be
given a unique
name specified by dde servername. Each interp is available as a
DDE topic only if the dde servername command was used to set the
name of the topic for each interp. So a dde services TclEval {}
command will return a list of service-topic pairs, where each of the
currently running interps will be a topic.
When Tcl processes a dde execute command, the data for the
execute is run as a script in the interp named by the topic of the
dde execute command.
When Tcl processes a dde request 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 $TCLEVAL$EXECUTE$RESULT for
internal use, and dde request commands for that variable will give
unpredictable results.
An external application which wishes to run a script in Tcl should have
that script store its result in a variable, run the dde execute
command, and the run dde request to get the value of the
variable.
When using DDE, be careful to ensure that the event queue is flushed
using either update or vwait. This happens by default
when using wish unless a blocking command is called (such as exec
without adding the & 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.
tk, winfo, send
application, dde, name, remote execution
Copyright © 1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.