NCH ソフトウェア ホーム
ホーム | 製品情報 | ダウンロード |購入 | サポート | サイトマップ  

NCHソフトウェアの統合API

NCHソフトウェア製品のAPI一覧

当社ソフトは様々な言語で書かれた様々な方法で、他のプログラムを使ってコントロールすることができます。NCHの統合API(Application Program Interface)を使うことで、他のプログラムの一部に弊社ソフトを組み込むことが可能です。APIはプログラム間で機能やデータなどのやり取りを行う行うための手順やデータをまとめた仕様です。



統合APIの使い方の一覧は以下の通りです(各メソッドのリンクをクリックいただくと、コードスニペットの例をご覧いただけます):

このページでは統合APIの使い方や、APIを使ってできることなどの概要のみを簡単に説明しています。更に詳しい情報はnchapi.zipファイルを解凍して「readme.html」ファイルをご覧ください。このzipファイルには実際の統合APIファイルと、C++、C#、Java、CLI、VBおよびVBS、VB.NET用のヘッダとソースファイルが入っています。これらのサンプルと同梱のAPIテストサーバーを弊社ソフトを統合するシステムの構築にお役立てください。こうしたファイルが圧縮されたnchapiファイルはこちらのリンクからダウンロードいただけます。

以下のサンプル中のNCHAPIKeyは実際にコントロールを行う弊社ソフトを特定する一意のAPIキーを意味します。統合APIから送られるコマンドと引数は全て文字列で送られた後、数字(Integer型の戻り値)と文字列を返します。特定のプログラムのAPIキーコードと、お使いいただけるコマンドや引数についての詳細は、そのプログラムの製品ページから特定のAPIドキュメントを入手してください。弊社製品の一覧はこちらからご覧いただけます。

  ページのトップへ戻る


ダイナミックリンクライブラリ(DLL)

DLLはコードレベルで新規または既存のプログラムをリンクするために必要な汎用インターフェイスを提供する内蔵ファイルです。プログラムを配布する際は、正しいDLLへのパスを必ず一緒に配布する必要があります。以下はDLLを読み込みコマンドを送ってメッセージボックスに結果を返すC++の例です(簡単にCにも応用できます):

#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);
}

  トップへ戻る


Component Object Model (COM) / ActiveX

COM により、特定の開発言語に依存することなく他のプログラムと簡単に通信を行うことができます。使用中の機械環境に関わらず、簡単に情報や参考資料の交換要求をインターフェース上で行うことができます。ActiveX は、Object Linking and Embedding (OLE) のバージョンで、COM の補助として実行に同様の技法を使用します。どちらの方法を使用するにも、配布ファイルにnchapi.dll ファイルを含めて登録しなければなりません。

Windows を使用している場合、nchapi.dll ファイルを登録するには、実行ウィンドウにて、(Start -> Run) 次のラインを入力してください:

regsvr32 "nchapi.dll"

以下は、COM を使用してコマンドを送信し、結果をポップアップ表示する、VB & VBS のサンプルです:

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

  トップへ戻る


Command Line Interface (CLI)

コマンドラインは、プログラム言語の知識がなくてもアプリケーションをコントロールすることができる、簡単な方法です。このシンプルな方法を使用して、Windows コマンドプロンプトまたは Windows タスク スケジューラなどの様々な方法で通信することができます。統一した API は、受信した値や情報を返信することができるため、相互通信が可能です。全てのコマンドは、左から右に実行されるため、プログラムに読み込まれる度に実行されます。

一般的なシンタックスは以下になります:

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

  トップへ戻る


Java Native Interface (JNI)

JNI は、従来のプラットフォーム独立型 Java コード と、特定のオペレーションシステム用に書かれた native(プラットフォーム依存型)アプリケーションを使用することのできる、フレームワークです。プログラムの実行時、nchapi.dll ファイルが含まれているか確認してください。以下は、JNI を使用してコマンドを送り、結果をメッセージダイアログに返信する例です:

この最初の例は、提供されている NCHAPIClient のクラスをインターフェースに使用するシンプルな方法で、NCH の API より次により呼び出すことができます:

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);
  }
}

また、独自のクラスを書くこともできますが、通常は既に提供されているクラスを使用しています。Java と native コードとの接続要件により、書き上げるクラスは全て 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);
  }
}
}

  トップへ戻る


Microsoft .NET Framework

これは、Microsoftからの開発された取り組みで、言語独立型フレームワークを提供することにより、通信および開発における複雑さを減らすことを目的に設計されました。.NET は、Common Language Infrastructure (CLI)を使用することにより、多くの一般的プログラムの要求に、特定の構築に関係なく、ネイティブにソリューションを提供します。.NET アプリケーションがAPI の機能にアクセスできるよう、ラッパーが使用されています。

以下は、.NET を使用して結果をメッセージボックスに返信する、C# の例です:

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);
    }
  }
}

以下は、.NET を使用した場合のVB.NET のサンプルで、結果をメッセージボックスに返信します:

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

  トップへ戻る


無限の可能性

NCH ソフトウェアの統一した API を使用することにより、何千もの新しいフレキシブルな構成システムにより、幅広い範囲のコントロールを行うことができます。

外出中に、お気に入りのラジオ放送を録音し忘れた、または留守電をセットし忘れたことに気づいたと想像してください。IVM システムにダイアルして、API によりプロンプトを使用してコマンドを送信するだけで、該当するプログラムに録音を開始するよう伝えることができます。

Axion の特定の時間を延長したい場合は、どうでしょう?Windows スケジューラとAPI を使用するだけで、 Axon に適切な時間延長設定のコマンドを送ることができます。外出中に、自動的に電話を掛ける必要がありますか?再び Windows スケジューラと API を使用して、 IVM または Express Talk に電話をかけるよう指示することができます。

  トップへ戻る


その他の情報

アプリケーションの書き上げに問題がある場合は、www.nch.com.au/supportを参照してください。

  トップへ戻る

  © NCH ソフトウェア トップ | プライバシー | 利用規約 | ホーム