ホーム | 製品情報 | ダウンロード |購入 | サポート | サイトマップ |
NCHソフトウェアの統合APINCHソフトウェア製品のAPI一覧当社ソフトは様々な言語で書かれた様々な方法で、他のプログラムを使ってコントロールすることができます。NCHの統合API(Application Program Interface)を使うことで、他のプログラムの一部に弊社ソフトを組み込むことが可能です。APIはプログラム間で機能やデータなどのやり取りを行う行うための手順やデータをまとめた仕様です。
以下のサンプル中の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) / ActiveXCOM により、特定の開発言語に依存することなく他のプログラムと簡単に通信を行うことができます。使用中の機械環境に関わらず、簡単に情報や参考資料の交換要求をインターフェース上で行うことができます。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 ソフトウェア | トップ | プライバシー | 利用規約 | ホーム |