WD: Ejecutar Word para Windows como servidor DDE

Seleccione idioma Seleccione idioma
Id. de artículo: 93657 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo explica qué temas DDE y los elementos se utilizan para comunicarse con Word para Windows como servidor DDE. En este artículo se supone que se dispone de conocimientos de conceptos DDE.

Macros de ejemplo de Word para Windows se proporcionan para demostrar la funcionalidad de servidor DDE.

Nota: Algunas funciones DDE no funcionan correctamente cuando se ejecuta desde una única instancia de Word para Windows. En otras palabras, una única copia de Word no puede ser tanto el cliente y el servidor en una conversación DDE al mismo tiempo. Los ejemplos de macro a continuación, ejecutar simultáneamente dos copias de Word para Windows con uno está el cliente y el otro, el servidor.

Word 2.x: debe tener la línea de comandos de MS-DOS SHARE presente en el archivo Autoexec.bat para que tenga dos copias de Word que se ejecute simultáneamente.

Word 1.x: se debe hacer una copia del archivo Winword.exe en el sistema y cambie el nombre esta copia else. Se pueden ejecutar dos copias con uno como el cliente y el otro el servidor.

Más información

Word 97

Para obtener más información acerca de y ejemplos con Word 97, mientras el Editor de Visual Basic para aplicaciones en DDE haga clic en el Ayudante de Office, escriba "DDE", haga clic en Buscar y haga clic para ver "Comunicación con otras aplicaciones."

Versiones de Word para Windows 2.x, 6.x 7.x

Iniciar una conversación DDE con Word como un servidor

Al iniciar una conversación DDE con otra aplicación o "marcar" la otra aplicación, dos cosas se requieren--un nombre de "aplicación" y "tema" de la conversación.

El nombre de "aplicación" normalmente es el nombre del archivo ejecutable del programa. Para Word, el nombre de aplicación es WINWORD.

"Tema" de una conversación DDE puede ser el nombre de un documento abierto o el tema especial "sistema". Un documento puede ser un documento normal de Word, una plantilla o una macro. Para obtener más información sobre el tema del sistema, consulte "Con el tema System".

Ejemplo:

La macro siguiente muestra iniciar una conversación con un documento como el tema.
   Sub MAIN
   ChanNum = DDEInitiate("winword", "sales.doc")
   DDETerminate ChanNum
   End Sub
				
en el ejemplo anterior, Word debe estar ejecutando y el documento Sales.doc debe estar abierto para el comando DDEInitiate devolver sin errores y con un número de canal válido.

Hacer los datos en y solicitar datos de un documento de Word

Para escribir (enviar) o solicitar información de un tema DDE, debe especificarse un "elemento". El elemento representa el elemento específico de datos o la ubicación en el tema donde se envía a o recuperan datos. Si un documento de Word es el tema de la conversación DDE, el elemento es un fragmento de texto o la ubicación que ha sido marcado mediante el comando Insertar marcador.

Nota: Word tiene el número de nombres de marcador reservado, como \sel y \Página, que no puede utilizarse en una conversación DDE. Pueden utilizarse sólo marcadores que se han insertado mediante el comando Insertar marcador.

Ejemplo:

La siguiente macro muestra cómo hacer para y solicitar datos y de una palabra del documento:

  1. Crear un documento en la segunda instancia de Word y guárdelo con el nombre Sales.doc.
  2. Cree dos párrafos de Sales.doc.
  3. En el primer tipo de párrafo Hello! , resaltarlo, haga clic en marcador en el menú Insertar, escriba la solicitud en el campo de nombre y haga clic en el botón Aceptar.
  4. En el segundo párrafo, haga clic en marcador en el menú Edición (menú Insertar de Word 2.x), escriba escribir en el campo de nombre y haga clic en el botón Aceptar.
  5. Ejecute la macro siguiente de la primera instancia de Word.
          Sub MAIN
          ChanNum = DDEInitiate("winword", "sales.doc")
          MsgBox DDERequest$(ChanNum, "request")
          DDEPoke ChanNum, "poke", "How are you!"
          DDETerminate ChanNum
          End Sub
    					

Enviar pulsaciones a Word para Windows

Es posible enviar datos a Word sin utilizar un escribir DDE. Si realizar una ejecución de DDE y no coloque corchetes alrededor de la cadena de ejecución, Word los tipos en el documento en la ubicación actual del cursor. Además, puede tener que ejecutar comandos claves especiales, como presionar la tecla ENTRAR o MAYÚS + F3, siguiendo la sintaxis de clave utilizada en el comando de macro EnviarTeclas de WordBasic de Word.

Ejemplo:

La siguiente macro tipos cinco líneas de datos en el documento Sales.doc en la ubicación actual del cursor:
   Sub MAIN
   ChanNum = DDEInitiate("winword", "sales.doc")
   For i = 1 To 5
      DDEExecute ChanNum, "Line" + Str$(i) + "{ENTER}"
   Next i
   DDETerminate ChanNum
   End Sub
				

Mediante el tema System

El tema del sistema es un tema especial admitido por la mayoría de las aplicaciones compatible con DDE para permitir que el cliente de obtener información específica sobre el estado actual del servidor. La finalidad más comunes es obtener una lista de temas disponibles que puede utilizarse para iniciar una conversación, o para ver si el tema deseado está disponible para su uso.

Una vez que ha iniciado una conversación DDE con Word como el servidor utilizando el tema del sistema, se puede realizar una solicitud DDE mediante los siguientes elementos: SysItems, temas y formatos. La lista de información devuelta por esta solicitud DDE estará delimitado por tabulaciones.

La tabla siguiente resume la información disponible:
   Item       Available Information
   --------   ---------------------
   SysItems   A list of all items you can use with the "system" topic.
   Topics     A list of all topics used to initiate a DDE conversation.
              This includes a list of all currently open documents with
              their path names, templates, macro windows, and the system
              topic.
   Formats    A list of all the Clipboard formats supported by Word.
				
ejemplo:

La siguiente macro utiliza el tema sistema para obtener información en todos los sistema de tres elementos: SysItems, temas y formatos. La macro analiza la ficha de lista delimitada de información, ponerlo en una matriz para mostrar en un cuadro de diálogo personalizado.
   Sub MAIN
   DDETerminateAll
   ChanNum = DDEInitiate(gAppName$, "System")
   SysItems$ = DDERequest$(ChanNum, "SysItems")
   Topics$ = DDERequest$(ChanNum, "Topics")
   Formats$ = DDERequest$(ChanNum, "Formats")
   DDETerminate ChanNum

   DisplayTabbedList(SysItems$, "List of System Items")
   DisplayTabbedList(Topics$, "List of Topics")
   DisplayTabbedList(Formats$, "List of Formats")
   End Sub

   Sub DisplayTabbedList(srcList$, Description$)
   Tab$ = Chr$(9)
   List$ = srcList$

   ' Count the number of tabs contained in a string
   '   which is equal to the number of items
   cTabs = 0
   FoundTab = InStr(1, List$, Tab$)
   While FoundTab
      cTabs = cTabs + 1
      FoundTab = InStr(FoundTab + 1, List$, Tab$)

   Wend
   ' Create the array to hold the information
   Dim ListBox$(cTabs)

   ' Extract tab-delimited items and store in ListBox$ array
   FoundTab = InStr(1, List$, Tab$)
   For i = 1 To cTabs
      ListBox$(i - 1) = Left$(List$, FoundTab - 1)
      List$ = Right$(List$, Len(List$) - FoundTab)
      FoundTab = InStr(1, List$, Tab$)
   Next i

   ' Snag last item, if it exists!
   If Len(List$) > 0 Then
      ListBox$(cTabs) = List$
   End If

   ' Create and display dialog box with items in listbox
   Begin Dialog UserDialog 320, 144
      ListBox 11, 23, 296, 84, ListBox$(), .ListBox
      OKButton 11, 113, 296, 21
      Text 11, 4, 296, 14, Description$
   End Dialog
   Dim dlg As UserDialog
   Dialog dlg
   End Sub
				

Errores de temas del sistema

El tema del sistema se diseñó principalmente para recuperar información acerca de Word con los elementos SysItems, temas y formatos.

Sin embargo, algunos usuarios pueden sentirse tentadas para utilizarlo para realizar otras actividades, como por ejemplo pokes DDE y solicitudes a los marcadores en documentos abiertos, o realizar DDE se ejecuta las instrucciones de las macros.

El problema es que la mayoría de los comandos de Word que se pueden ejecutar deben ser dirigidos a un documento específico. Dado que Word puede tener hasta nueve ventanas de documento abiertos en un momento, si se intenta hacer una DDE ejecución para insertar texto en un documento utilizando el tema del sistema, Word no sabe qué documento abierto para insertar el texto (Word no suponga que la ventana activa es la ventana deseada). Intentando ejecutar comandos de específicas del documento con los resultados de tema del sistema un error. El mismo es cierto si se intenta solicitar datos de un elemento no admitido el tema sistema descrito anteriormente.

Los comandos que se ejecutan que no son específicos del documento, como abrir o crear un nuevo documento, funcionan bien. De hecho, una práctica común entre los escritores de macro es utilizar el elemento Topics para ver si está disponible para comunicarse con el documento deseado. Si el documento no está disponible, puede ejecutar el comando FileOpen para abrirlo. Después de abrir el documento (tema), cierra la comunicación con el tema del sistema y, a continuación, iniciar una conversación nueva con el documento abierto. La macro siguiente muestra esta técnica utilizando Microsoft Excel.

Ejemplo:

La macro siguiente muestra cómo utilizar el tema del sistema en Microsoft Excel para determinar si una determinada hoja de cálculo está abierta y disponible para una conversación DDE. Si no lo es, se emite un DDEExecute a Excel para abrir la hoja de cálculo.
   Sub MAIN
   Topic$ = "c:\excel\examples\amortize.xls"
   chan = DDEInitiate("excel", "system")
   Topics$ = DDERequest$(chan, "topics")
   If InStr(UCase$(topics$), UCase$(Topic$)) = 0 Then
      exe$ = "[OPEN(" + Chr$(34) + Topic$ + Chr$(34) + ")]"
      DDEExecute chan, exe$
   End If
   DDETerminate chan
   chan = DDEInitiate("excel", topic$)
   MsgBox "We're talking to " + Topic$ + "!"
   DDETerminateAll
   End Sub
				
Nota: Word funciona igual con excepción de la instrucción DDEExecute para abrir el archivo. No se demostrarlo con Word comunicarse con una segunda instancia, ya que el tema sistema siempre busca la instancia de cliente, se omite la segunda instancia. Cualquier intento realizar un DDEExecute a la misma instancia de Word, se produce un error. Una sola instancia de Word no puede ser el cliente y el servidor en una conversación DDE. Si fuera posible, se podría establecer la variable de $ exe en lo siguiente:
   "[FileOpen " + Chr$(34) + Topic$ + Chr$(34) + "]"
				

Referencias

"Microsoft Word Technical Reference para Windows y OS/2," páginas 312 307.

Propiedades

Id. de artículo: 93657 - Última revisión: jueves, 18 de enero de 2007 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Word 1.0 Standard Edition
  • Microsoft Word 1.1 Standard Edition
  • Microsoft Word 1.1 Standard Edition
  • Microsoft Word 2.0 Standard Edition
  • Microsoft Word 2.0a
  • Microsoft Word for Windows 2.0b
  • Microsoft Word 2.0c
  • Microsoft Word 6.0 Standard Edition
  • Microsoft Word 6.0a
  • Microsoft Word 6.0c
  • Microsoft Word 95 Standard Edition
  • Microsoft Word 95a
  • Microsoft Word 97 Standard Edition
Palabras clave: 
kbmt kbmacro KB93657 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 93657
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com