09-11-2019 03:36 AM
現在、LabVIEW上で他社アプリケーションを起動し操作することを考えています。
実際に使用するアプリケーションはZeiss社のZEN 3.0で、顕微鏡カメラと接続し撮影するアプリケーションです。これを起動したのちに、顕微鏡カメラで連続撮影を行いたいと考えています。
https://forums.ni.com/t5/NI製品ディスカッション/他のアプリケーションの起動について/m-p/821710
上のディスカッションの様にシステム実行viを用いて、コマンドプロンプトによって起動することは可能になりましたが、その後のアプリケーション上の操作(ボタンを押す、ショートカットを入力する等)は可能でしょうか?
ご教授よろしくお願いいたします。
09-11-2019 11:07 AM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
システム実行VIでアプリケーションのEXEファイルを起動する場合、起動時に引数を含めて起動できるように作成されているEXEに対して実行オプションとしての引数を追加できますが、起動後の操作はできません。
このソフトウェアを制御するためのライブラリやAPIが準備されている場合は、それを利用して操作できる可能性はあります。
その例として、レポート生成サブパレットに含まれているVIにはMicrosoft WordやExcelを起動してファイルを作成するものがあります。このような処理が可能なのはWordやExcelが外部ソフトウェアから制御できるAPIが存在して利用できるようになっているためです。
ZEN用Open Application Developmentというものがあり、主要な機能へのアクセスがあるようですので、それを利用すれば操作可能になる可能性はあると思います。この点はZeiss社にご確認ください。
09-11-2019 07:00 PM
お世話になっております。
ご丁寧にご回答ありがとうございます。
ひとまずZeiss社にも連絡をして確認させていただきます。
重ねて質問で申し訳ないのですが、ご回答における「API」というのはLabVIEW上ではユーザが自由に利用できるものなのでしょうか。(例えばOffice以外のアプリケーションでAPIが存在する場合、それを操作するための関数などはあるのでしょうか)
Open Application Developmentにはpythonによる制御はできる様なので、pythonを通じて制御になるかと推測しています。
09-11-2019 09:04 PM
>「API」というのはLabVIEW上ではユーザが自由に利用できるものなのでしょうか
APIは、Application Programming Interfaceの略でそのソフトウェア以外からアクセスできるように設計されているライブラリです。たとえばWindows OSにもWindows APIがあり、LabVIEWを含むさまざまなプログラミング言語で利用できます。
基本的にAPIは、主にDLL形式(.dll)になっており、LabVIEWでは以下の呼び出し方法があります。
Open Application Developmentにはpythonによる制御はできるとのことですが、LabVIEW 2018以降ではPythonのソースコードを実行できる関数が含まれるようになっており、Pythonでアプリケーションを制御するプログラムを作成しておき、LabVIEWで実行することはできると思います。