dde(3tcl) | Tcl Built-In Commands | dde(3tcl) |
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 命令的唯一的選項是:
下面的命令是完整的動態數據交換命令集的子集。
一個 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(n), winfo(n), send(n)
application, dde, name, remote execution
寒蟬退士
2001/06/18
http://cmpp.linuxforum.net
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
8.1 | Tcl |