NAME¶
dde -
執行一個動態數據交換命令
總覽 SYNOPSIS¶
package require dde 1.1
dde servername ?
topic?
dde ?-async? command service topic ?
data?
描述 DESCRIPTION¶
當運行在 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 命令 COMMANDS¶
下面的命令是完整的動態數據交換命令集的子集。
- 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。
DDE 和 TCL¶
一個 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)直到事件隊列被刷新。這可能產生死鎖的情況。
參見 SEE ALSO¶
tk(n), winfo(n), send(n)
關鍵字 KEYWORDS¶
application, dde, name, remote execution
[中文版維護人]¶
寒蟬退士
[中文版最新更新]¶
2001/06/18
《中國 Linux 論壇 man
手冊頁翻譯計劃》:¶
http://cmpp.linuxforum.net