dde.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:7k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1997 Sun Microsystems, Inc.
  3. '" Copyright (c) 2001 ActiveState Corporation.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: dde.n,v 1.8.2.4 2004/12/03 00:37:21 hobbs Exp $
  9. '" 
  10. .so man.macros
  11. .TH dde n 1.2 dde "Tcl Bundled Packages"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. dde - Execute a Dynamic Data Exchange command
  16. .SH SYNOPSIS
  17. .sp
  18. fBpackage require dde 1.2fR
  19. .sp
  20. fBdde evalfR ?fB-asyncfR? fIservice cmdfR ?fIarg ...fR?
  21. .sp
  22. fBdde executefR ?fB-asyncfR? fIservice topic datafR
  23. .sp
  24. fBdde poke fIservice topic item datafR
  25. .sp
  26. fBdde requestfR ?fB-binaryfR? fIservice topic datafR
  27. .sp
  28. fBdde servernamefR ?fItopicfR?
  29. .sp
  30. fBdde services fIservice topicfR
  31. .BE
  32. .SH DESCRIPTION
  33. .PP
  34. This command allows an application to send Dynamic Data Exchange (DDE)
  35. command when running under Microsoft Windows. Dynamic Data Exchange is
  36. a mechanism where applications can exchange raw data. Each DDE
  37. transaction needs a fIservice namefR and a fItopicfR. Both the
  38. fIservice namefR and fItopicfR are application defined; Tcl uses
  39. the service name fBTclEvalfR, while the topic name is the name of the
  40. interpreter given by fBdde servernamefR. Other applications have their
  41. own fIservice namefRs and fItopicfRs. For instance, Microsoft Excel
  42. has the service name fBExcelfR.
  43. .PP
  44. The fBevalfR and fBexecutefR commands accept the option fB-asyncfR:
  45. .SH "DDE COMMANDS"
  46. .PP
  47. The following commands are a subset of the full Dynamic Data Exchange
  48. set of commands.
  49. .TP
  50. fBdde servername fR?fItopicfR?
  51. fBdde servernamefR registers the interpreter as a DDE server with
  52. the service name fBTclEvalfR and the topic name specified by fItopicfR.
  53. If no fItopicfR is given, fBdde servernamefR returns the name
  54. of the current topic or the empty string if it is not registered as a service.
  55. .TP
  56. fBdde executefR ?fB-asyncfR? fIservice topic datafR
  57. fBdde executefR takes the fIdatafR and sends it to the server indicated
  58. by fIservicefR with the topic indicated by fItopicfR. Typically,
  59. fIservicefR is the name of an application, and fItopicfR is a file to
  60. work on.  The fIdatafR field is given to the remote application.
  61. Typically, the application treats the fIdatafR field as a script, and the
  62. script is run in the application.  The fB-asyncfR option requests
  63. asynchronous invocation.  The command returns an error message if the
  64. script did not run, unless the fB-asyncfR flag was used, in which case
  65. the command returns immediately with no error.
  66. .TP
  67. fBdde poke fIservice topic item datafR
  68. fBdde pokefR passes the fIdatafR to the server indicated by
  69. fIservicefR using the fItopicfR and fIitemfR specified.  Typically,
  70. fIservicefR is the name of an application.  fItopicfR is application
  71. specific but can be a command to the server or the name of a file to work
  72. on.  The fIitemfR is also application specific and is often not used, but
  73. it must always be non-null.  The fIdatafR field is given to the remote
  74. application.
  75. .TP
  76. fBdde requestfR ?fB-binaryfR? fIservice topic itemfR
  77. fBdde requestfR is typically used to get the value of something; the
  78. value of a cell in Microsoft Excel or the text of a selection in
  79. Microsoft Word. fIservicefR is typically the name of an application,
  80. fItopicfR is typically the name of the file, and fIitemfR is
  81. application-specific. The command returns the value of fIitemfR as
  82. defined in the application.  Normally this is interpreted to be a
  83. string with terminating null.  If fB-binaryfR is specified, the
  84. result is returned as a byte array.
  85. .TP
  86. fBdde services fIservice topicfR
  87. fBdde servicesfR returns a list of service-topic pairs that
  88. currently exist on the machine. If fIservicefR and fItopicfR are
  89. both null strings ({}), then all service-topic pairs currently
  90. available on the system are returned. If fIservicefR is null and
  91. fItopicfR is not, then all services with the specified topic are
  92. returned. If fIservicefR is not null and fItopicfR is, all topics
  93. for a given service are returned. If both are not null, if that
  94. service-topic pair currently exists, it is returned; otherwise, null
  95. is returned.
  96. .TP
  97. fBdde evalfR ?fB-asyncfR? fItopic cmd fR?fIarg arg ...fR?
  98. fBdde evalfR evaluates a command and its arguments using the interpreter
  99. specified by fItopicfR. The DDE service must be the fBTclEvalfR
  100. service.  The fB-asyncfR option requests asynchronous invocation.  The
  101. command returns an error message if the script did not run, unless the
  102. fB-asyncfR flag was used, in which case the command returns immediately
  103. with no error.  This command can be used to replace fBsendfR on Windows.
  104. .SH "DDE AND TCL"
  105. A Tcl interpreter always has a service name of fBTclEvalfR.  Each
  106. different interpreter of all running Tcl applications must be
  107. given a unique
  108. name specified by fBdde servernamefR. Each interp is available as a
  109. DDE topic only if the fBdde servernamefR command was used to set the
  110. name of the topic for each interp. So a fBdde services TclEval {}fR
  111. command will return a list of service-topic pairs, where each of the
  112. currently running interps will be a topic.
  113. .PP
  114. When Tcl processes a fBdde executefR command, the data for the
  115. execute is run as a script in the interp named by the topic of the
  116. fBdde executefR command.
  117. .PP
  118. When Tcl processes a fBdde requestfR command, it returns the value of the
  119. variable given in the dde command in the context of the interp named by the
  120. dde topic. Tcl reserves the variable fB$TCLEVAL$EXECUTE$RESULTfR for
  121. internal use, and fBdde requestfR commands for that variable will give
  122. unpredictable results.
  123. .PP
  124. An external application which wishes to run a script in Tcl should have
  125. that script store its result in a variable, run the fBdde executefR
  126. command, and the run fBdde requestfR to get the value of the
  127. variable.
  128. .PP
  129. When using DDE, be careful to ensure that the event queue is flushed
  130. using either fBupdatefR or fBvwaitfR.  This happens by default
  131. when using fBwishfR unless a blocking command is called (such as fBexecfR
  132. without adding the fB&fR to place the process in the background).
  133. If for any reason the event queue is not flushed, DDE commands may
  134. hang until the event queue is flushed.  This can create a deadlock
  135. situation.
  136. .SH EXAMPLE
  137. This asks Internet Explorer (which must already be running) to go to a
  138. particularly important website:
  139. .CS
  140. package require dde
  141. fBdde executefR iexplore WWW_OpenURL http://www.tcl.tk/
  142. .CE
  143. .SH "SEE ALSO"
  144. tk(n), winfo(n), send(n)
  145. .SH KEYWORDS
  146. application, dde, name, remote execution