DDEExecute( ) (Función)

Mediante el intercambio dinámico de datos (DDE), puede enviar un comando a otra aplicación.

DDEExecute(nChannelNumber, cCommand [, cUDFName])

Valores devueltos

Logical

Parámetros

  • nChannelNumber
    Especifica el número de canal.

  • cCommand
    Especifica el comando que desea enviar a la otra aplicación. El formato del comando está determinado por la aplicación a la que lo está enviando. Consulte la sintaxis correcta en la documentación de la aplicación.

  • cUDFName
    Permite solicitudes de ejecución asíncrona de comandos. Si omite cUDFName, la aplicación cliente esperará durante el tiempo especificado en DDESetOption( ). Si especifica una FDU mediante cUDFName, la ejecución del programa cliente continuará inmediatamente después de que se haga la petición de ejecución del comando.

    Cuando la aplicación de servidor termine la ejecución del comando, se ejecutará la FDU especificada mediante cUDFName. Se transfieren a la FDU seis parámetros en el orden mostrado en la tabla siguiente.

    Parámetro Contenido
    Channel Number Número de canal de la aplicación de servidor.
    Action XACTCOMPLETE (ejecución correcta).XACTFAIL (ejecución del comando incorrecta).
    Item Nombre del elemento; por ejemplo, R1C1 para una celda de una hoja de cálculo de Microsoft Excel.
    Data Los nuevos datos (REQUEST) o los datos transferidos (POKE o EXECUTED).
    Format Formato de datos; por ejemplo, CF_TEXT.
    Transaction Number El número de transacción devuelto por DDEExecute( ).

    Utilice DDEAbortTrans( ) para cancelar una transacción incompleta. Si la transacción falla, podrá utilizar DDELastError( ) para determinar por qué ha fallado.

    Cuando incluya cUDFName, DDEExecute( ) no devolverá un valor lógico. En su lugar, se devolverá un número de transacción; si se produce un error, se devolverá –1.

Observaciones

El comando enviado con DDEExecute( ) debe ser comprensible para la aplicación. Antes de que pueda ejecutar el comando, debe establecer un canal con la aplicación de servidor mediante DDEInitiate( ).

Por ejemplo, Microsoft Excel tiene un juego completo de comandos de macro, incluidos los comandos DDE que permiten pedir datos de Visual FoxPro desde Microsoft Excel. Si establece un canal con Microsoft Excel, podrá utilizar DDEExecute( ) para enviar comandos de macro a Microsoft Excel desde Visual FoxPro.

Si la aplicación receptora logra ejecutar el comando, DDEExecute( ) devolverá verdadero (.T.). Si la aplicación receptora no logra ejecutar el comando o si el número de canal que incluye no es válido, DDEExecute devolverá falso (.F.). Si se incluye la FDU asíncrona opcional cUDFName, se devolverá un número de transacción. Si se produce un error, DDEExecute( ) devolverá –1.

Ejemplo

El ejemplo siguiente utiliza DDEInitiate( ) para establecer un canal DDE entre Visual FoxPro y la hoja de cálculo Sheet1 de Microsoft Excel. DDEExecute( ) se utiliza para ejecutar un comando de Microsoft Excel que maximiza la ventana de Microsoft Excel.

gnChanNum = DDEInitiate('Excel', 'Sheet1')
IF gnChanNum != -1
   glExecute = DDEExecute(gnChanNum, '[App.Maximize]')
   IF glExecute != .F.
      WAIT WINDOW 'EXCEL window has been zoomed out.'
   ENDIF
   = DDETerminate(gnChanNum)   && Close the channel
ENDIF

Vea también

DDEAbortTrans( ) | DDEInitiate( ) | DDELastError( ) | DDESetOption( ) | DDETerminate( )