Página principal de NCH Software
Página principal | Productos | Descargas | Comprar | Asistencia | Mapa del sitio  

API unificada de NCH Software

Una completa solución API para los productos de NCH Software

Nuestro software puede ser controlado por otros programas usando una variedad de métodos escritos en muchos lenguajes diferentes. La Interfaz de Programación de Aplicaciones (API) unificada de NCH introduce una manera simple de abordar la necesidad en sus sistemas para controlar nuestros programas. La API permite el intercambio de solicitudes y datos que se realizan entre los programas a través de diversos medios.



Los diferentes métodos (con ejemplos de "fragmento de código") para el uso de la API unificada incluyen:

Este documento está diseñado para sólo proporcionar una breve descripción general de las posibilidades y técnicas para el uso de la API unificada. Para mayor información vea "readme.html" incluido en el archivo nchapi.zip . Este zip también contiene los archivos API unificados en sí, con todo el encabezado y archivos de origen para ejemplos de trabajo en C++, C#, Java, CLI, VB & VBS, y VB.NET. Estos ejemplos funcionarán con el servidor de prueba API incluido para asistirlo en la configuración de su sistema. Para descargar la API unificada de NCH con estos ejemplos presione aquí...

En los ejemplos a continuación, "NCHAPIKey" se refiere a un código API Key único que identifica el producto de software al que está intentando controlar y comunicarse. Todos los comandos y argumentos son enviados a través de la API unificada como cadenas, las cuales responden con un número (valor entero devuelto) y una cadena de resultado. Para más información sobre códigos API Key y los comandos y argumentos disponibles por ese programa en particular, visite la página principal del producto y consulte la documentación API específica para esa aplicación. Para encontrar la lista completa de nuestros productos de software presione aquí...

  Volver al principio


Biblioteca de enlaces dinámicos (DLL)

La DLL es un archivo autónomo que proporciona la interfaz genérica necesaria para enlazar aplicaciones recientemente creadas o preexistentes juntas en el nivel de código. Al distribuir su programa, necesita asegurarse que haya incluido y correctamente dirigido la ruta a la DLL. A continuación, un ejemplo C++ (que puede ser fácilmente implementado en C) que carga la DLL y envía un comando, que devuelve un resultado a un buzón de mensaje:

#define API_SERVER_KEY "NCHAPIKey"

const unsigned int nArgs = 3;
LPCTSTR szArgs[] = {_T("-testapi"), _T("More Info"), _T("etc...")};

typedef DWORD (WINAPI *pFn) (LPCTSTR szProgramKey, UINT nArgs, LPCTSTR  const * szArgs, LPTSTR szResultString);

void SendCommandDLL()
{
  HMODULE hModDll = LoadLibrary(_T("nchapi.dll"));
  pFn pfSendCommand = (pFn)GetProcAddress(hModDll, "NCHAPISendCommand");

  TCHAR szResultString[8096]; 
  if ((pfSendCommand)(_T(API_SERVER_KEY), nArgs, szArgs, szResultString) == 0) {
    MessageBox(NULL, szResultString, _T("Result"), MB_OK);
  }
  FreeLibrary(hModDll);
}

  Volver al principio


Modelo de objetos componentes (COM) / ActiveX

COM permite la comunicación entre procesos de lenguaje neutro permitiendo que otros programas tengan fácil referencia y transmitan información y solicitudes a través de una interfaz bien definida, sin importar el entorno de la máquina empleada. ActiveX es una versión de la Vinculación e Incrustación de Objetos (OLE) que es una subsidiaria de COM y usa las mismas técnicas para la implementación. Al usar cualquier método, tendrá que incluir y registrar el archivos nchapi.dll con su distribución.

En una máquina con Windows para registrar el archivo nchapi.dll debe escribir en la ventana de ejecución (Inicio -> Ejecutar) algo como:

regsvr32 "nchapi.dll"

A continuación, un ejemplo VB y VBS que usa COM para enviar un comando, que devuelve un resultado en un cuadro emergente:

Dim shell, client, result
set shell = CreateObject("WScript.Shell")
set client = CreateObject("NCHAPI.Client")

Dim ServerKey
ServerKey = "NCHAPIKey"
Dim nArgs
nArgs = 3
Dim szArgs
szArgs = Array("-testapi", "More Info", "etc...")
Dim szResultString

if client.SendCommand(ServerKey, CInt(nArgs), szArgs, szResultString) = 0 then
  result = shell.Popup(szResultString, 0, "Result")
end if

  Volver al principio


Interfaz de línea de comando (CLI)

La línea de comando siempre ha sido la manera más fácil para controlar las aplicaciones sin el conocimiento previo de lenguajes de programación específicos. Puede usar este método de comunicación simple a través de varios medios como el símbolo del sistema de Windows o el programador de tareas de Windows. La comunicación bidireccional simultánea es posible a medida que la API unificada es capaz de devolver valores e información obtenida. Todos los comandos son ejecutados de izquierda a derecha, lo que significa que cada comando será ejecutado tal como es leído por el programa.

La sintaxis general es:

nchapi.exe NCHAPIKey -testapi "More Info" "etc..."

  Volver al principio


Java Native Interface (JNI)

JNI es un framework de programación que permite al código Java, una plataforma tradicionalmente independiente, para usar las aplicaciones nativas (de plataforma dependiente) escritas para un sistema operativo específico. Al implementar su programa, necesita asegurarse que haya incluido el archivo nchapi.dll . A continuación, verá ejemplos de Java que usa JNI para enviar un comando, que devuelve un resultado a un cuadro de diálogo de mensaje:

El primer ejemplo usa simplemente la clase NCHAPIClient proporcionada como la interfaz a través de la cual la API unificada de NCH es llamada:

import nch.api.NCHAPIClient;

public void sendCommandJNI() {
  String serverKey = "NCHAPIKey";
  String[] szArgs = { "-testapi", "More Info", "etc..." };
  NCHAPIClient client = new NCHAPIClient();
  if (client.sendCommand(serverKey, szArgs) == client.NCHAPI_SUCCESS) {
     JOptionPane.showMessageDialog(null, client.getResultString(), "Result", JOptionPane.INFORMATION_MESSAGE);
  }
}

O también puede escribir su propia versión de la clase, pero en la mayoría de los casos esto simplemente reproducirá la clase que ya se ha proporcionado: Tenga en cuenta que debido a los requisitos de la manera como Java interactúa con código nativo, cualquier clase que escriba debe ser nombrada nch.api.NCHAPIClient:

package nch.api;
private static native int NCHAPISendCommand(String szServerKey, int nArgs, String[] szArgs, String[] szResultString);

public class NCHAPIClient {

public NCHAPIClient() {
  System.loadLibrary("nchapi");

  private String serverKey = "NCHAPIKey;
  private int nArgs = 3;
  private String[] szArgs = { "-testapi", "More Info", "etc..." };
  private String[] szReturnString = null;
  
  if (NCHAPISendCommand(serverKey, nArgs, szArgs, szReturnString) == 0) {
    JOptionPane.showMessageDialog(null, szReturnString, "Result", JOptionPane.INFORMATION_MESSAGE);
  }
}
}

  Volver al principio


Microsoft .NET Framework

Esta es la última iniciativa de Microsoft y proporciona otro framework (marco de trabajo) de lenguaje independiente diseñado para reducir la complejidad de la comunicación y desarrollo. NET proporciona soluciones de manera nativa a muchos requisitos de programas comunes sin la necesidad de hacer frente a las arquitecturas específicas mediante el uso de la infraestructura de lenguaje común (Common Language Infrastructure - CLI) Un wrapper (envoltura) es utilizado para que las aplicaciones. NET puede acceder a la funcionalidad de la API unificada.

A continuación, un ejemplo de C# usando NET que devuelve un resultado a un cuadro de mensaje:

public partial class FormMainDialog : Form
{
  NCHApi.Client apiCOMClient;
  public FormMainDialog()
  {
    InitializeComponent();
    apiCOMClient = new NCHApi.Client();
  }
  private void buttonSendCommand_Click(object sender, EventArgs e)
  {
    string ServerKey = "NCHAPIKey";
    int nArgs = 3;
    string[] szArgs = {"-testapi", "More Info", "etc..."};
    string szResultString = "";

    if (NCHApi.NCHAPIResult.Success == apiCOMClient.SendCommand(ServerKey, nArgs, szArgs, ref szResultString))
    {
      MessageBox.Show(szResultString, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
  }
}

A continuación, un ejemplo de VB.NET usando NET que devuelve un resultado a un cuadro de mensaje:

Public Class MainForm
  Private Sub buttonSendCommand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSendCommand.Click
    Dim comClient As New NCHApi.Client()

    Dim ServerKey As String = "NCHAPIKey"
    Dim nArgs As Integer = 3
    Dim szArgs As String() = New String() {"-testapi", "More Info", "etc..."}
    Dim szResultString As String = ""

    Dim res As NCHApi.NCHAPIResult
      res = comClient.SendCommand(ServerKey, nArgs, szArgs, szResultString)
    If (res = NCHApi.NCHAPIResult.Success) Then
      MsgBox(szResultString, MsgBoxStyle.OkOnly & MsgBoxStyle.Information, "Result")
    End If
  End Sub
End Class

  Volver al principio


Posibilidades ilimitadas

El uso de la API unificada de NCH Software permite un amplio rango de control, con literalmente miles de nuevos sistemas de configuración flexible posibles.

Imagine que está fuera de casa y olvidó grabar su programa de radio favorito por la web o se olvidó de ejecutar VRS para grabar las llamadas telefónicas. Simplemente marque al sistema IVM y use el indicador para enviar comandos a través de la API unificada a los programas respectivos para que empiecen a grabar.

¿Qué sucede si desea configurar una extensión en Axon para un tiempo específico? Simplemente use el programador de Windows y la API unificada para enviar un comando a Axon informando para que configure la extensión apropiada. ¿Necesita marcar un número automáticamente pero siempre está fuera de casa? Otra vez, use el programador de Windows y la API unificada para instruir IVM o Express Talk para que realicen la llamada.

  Volver al principio


Otra información

Si tiene problemas para escribir una aplicación, visite www.nch.com.au/support/es.

  Volver al principio

  © NCH Software Arriba | Privacidad | Términos legales | Página principal