- 名字
- dde - 执行一个动态数据交换命令
- 总览
- package require dde 1.1
- dde servername ?topic?
- dde ?-async? command service topic ?data?
- 描述
- -async
- DDE 命令
- 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 和 TCL
- 参见
- 关键字
dde - 执行一个动态数据交换命令package require dde 1.1
dde
servername ?topic?
dde ?-async? command service
topic ?data?
当运行在 Microsoft Windows 下的时候,这个命令允许一个应用来发送动态数据交换(Dynamic Data Exchange:DDE)命令。动态数据交换是一种机制,在这里应用可以交换原始数据。每个 DDE
事务都需要一个服务名(service name)和一个主题(topic)。
服务名和主题均由应用来定义;Tcl 使用的服务名是 TclEval,而主题名是用
dde servername 给出的解释器的名字。其他的应用有其自己的服务名和主题。
例如,Microsoft Excel 的服务名是
Excel。 dde 命令的唯一的选项是:
- -async
- 要求异步激发(invocation)。这只对
execute 子命令有效。正常的,dde execute
子命令等待直到命令完成,返回适当的出错信息。当使用了
-async 选项,命令立刻返回,不能获得出错信息。
下面的命令是完整的动态数据交换命令集的子集。
- dde servername ?topic?
- dde servername 用服务名 TclEval 和由 topic 指定的主题名来把解释器注册为一个 DDE
服务器。如果没有给出 topic,dde servername
返回当前的主题的名字,如果未被注册为一个服务则返回空串。
- dde execute service topic data
- dde execute 接受 data 并把它发送到由 service
指示出的服务器并由 topic 指示出主题。典型的,service
是一个应用的名字,而 topic
是要在其上工作的一个文件。给予远程应用的是 data
域(field)。典型的,应用把 data 域作为脚本对待,接着在应用中运行脚本。如果脚本没有运行,命令返回一个错误。如果使用了 -async
标志,命令立即返回而没有错误。
- dde poke service topic item data
- dde poke 传递 data 到由 service
指示的服务器并用 topic 和 item
加以指定。典型的, service 是一个应用的名字。topic
由应用指定,可以是给服务器的一个命令或一个要在其上工作的一个文件的名字。item
也由应用指定,不常用,但必须总是非空。给予远程应用的是
data 域( field)。
- dde request service topic item
- dde request 典型的用于得到某种东西的值;如 Microsoft Excel
中的一个单元格(cell)的值或在 Microsoft Word
中一个选择的文本。 service
典型的是一个应用的名字。 topic
典型的是文件的名字,item
由用户来指定。命令返回在应用中定义的 item
的值。
- dde services service topic
- dde services 返回当前在机器上存在的服务-主题对的一个列表。如果 service
和 topic 都是空串({}),
则返回在系统上当前可获得的所有的服务-主题对。如果 service
是空而 topic 不是,则返回指定主题的所有服务。如果 service
不空而
topic 空,则返回指定服务的所有主题。如果均不空,若当前存在这个服务-主题对则返回它,否则返回空。
- dde eval topic cmd ?arg arg ...?
- dde eval 求值一个命令和它的参数,解释器用 topic
指定。DDE 服务必须是
TclEval 服务。这个命令可以用于在 Windows 上替换 send
。
一个 Tcl 解释器总是有一个服务名 TclEval。
每个不同的运行 Tcl 应用的解释器必须给予一个用 dde servername
指定的唯一的名字。每个解释器只有使用 dde servername
命令来设置名字,这个解释器才可作为一个 DDE 主题来获得。所以一个 dde services TclEval {}
命令将返回一个服务-主题对的列表,这里每个当前运行的解释器都将是一个主题。当
Tcl 处理一个 dde execute
命令时,用于执行的数据作为一个脚本在 dde execute
命令的主题指名的解释器中运行。
当 Tcl 处理一个 dde request
命令时,它返回在 dde 命令中给出的变量的值,变量在由 dde
主题指名的解释器的上下文中的。Tcl 为内部使用而保留变量 $TCLEVAL
$EXECUTE $RESULT,对这些变量的
dde request 命令将返回不可预测的(unpredictable)结果。
打算运行一个
Tcl 脚本的一个外部(external)应用应当使这个脚本在一个变量中存储它的结果,运行
dde execute 命令,接着运行 dde request
得到这个变量的值。
当使用 DDE 时,注意要确保使用 update
或者 vwait 来刷新事件队列。在使用
wish
时这是缺省的,但不包括调用了一个阻塞命令的情况(例如 exec
而不填加 & 来在后台运行进程)。如果由于某种原因而导致事件队列没被刷新,DDE 命令将挂起(hang)直到事件队列被刷新。这可能产生死锁的情况。
tk, winfo,
send
应用,
dde, 名字, 远程执行
Copyright © 1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
[中文版维护人]
寒蝉退士
[中文版最新更新]
2001/06/18
《中国 Linux 论坛 man 手册页翻译计划》:
www.CMPP.net