LabVIEW実行ファイルをバックグラウンドプロセスとして実行する

更新しました Mar 17, 2023

環境

ソフトウェア

  • LabVIEW Professional
  • LabVIEW Application Builder Module

LabVIEWアプリケーションビルダを使用して、LabVIEW VIをスタンドアロンアプリケーション(実行ファイル)にビルドしました。実行ファイルはユーザ入力を必要としないため、バックグラウンドタスクとして実行したいです。実行ファイルでフロントパネルウィンドウを非表示にして、アプリケーションの実行時に表示されるタスクバーアイコンを削除するにはどうすればよいですか?

実行ファイルを実行しているときに、アプリケーションのフロントパネルウィンドウを非表示にしてタスクバーアイコンを削除するには、実行ファイルが作成されたVIを編集してから再ビルドする必要があります。必要な変更を行うには、下記の手順を行います。

 

LabVIEW 7.1以降:

  • フロントパネルウィンドウを非表示にする
  1. 実行ファイルに組み込むトップレベルのVIを開きます。
  2. トップレベルVIの先頭で、関数パレット>>プログラミング>>ファイルI/O>>ファイル定数サブパレットにある現在のVIのパスVIを使用して、現在のVIのファイルパスを取得します。
  3. 関数パレット>>プログラミング>>アプリケーション制御サブパレットにあるVIリファレンスを開くVIを使用して、トップレベルVIへのリファレンスを開きます。
  4. 現在のVIのパスからのパス出力をVIリファレンスを開くVIのVIパス入力に配線します。
  5. VIリファレンスを開くVIのVIリファレンス出力を、関数パレット>>プログラミング>>アプリケーション制御サブパレットにあるインボーグノードリファレンス入力端子に接続します。
  6. インボーグノードメソッドを左クリックします。表示されるドロップダウンメニューでフロントパネル>>開くを選択します。
  7. Stateパラメータに定数を作成してから、Hiddenを選択します。
  8. 関数>>プログラミング>>アプリケーション制御サブパレットにあるリファレンスを閉じるVIを使用して、VIへのリファレンスを閉じます。 ブロックダイアグラムは次のようになります。
  1. VIを保存したら、実行ファイルを再ビルドします。
 
  • Windowsタスクバーアイコンを非表示にする
  1. トップレベルVIを実行ファイルにビルドした後、対応する.iniファイルを開きます。ファイルは、実行ファイルが作成されたディレクトリと同じディレクトリに存在します。LabVIEW 7.1以前のバージョンでは、実行ファイルのビルド時に自動的に.iniファイルが作成されることはありません。VIを一度実行すると、この.iniファイルが自動的に作成されます(空になります)。
  2. .iniファイルの先頭行がApplication.exeであることを確認します。ここで、Application.exeは実行ファイルの名前です。
  3. HideRootWindow = Trueを.iniファイルに追加します。これは、実行ファイルのWindowsタスクバーエントリを非表示にします。
  4. 最後に、スタンドアロンアプリケーションをターゲットマシンに移動したときに、変更した.iniファイルが実行ファイルと同じディレクトリに配置されていることを確認します。
メモ: LabVIEW 8.0では、上記で説明したHideRootWindow.iniタグは機能しません。この問題はLabVIEW 8.0.1で修正されました。



 

 

LabVIEW 7.0:

1つの例外を除き、上記の手順を行います。このバージョンでは、インボーグノードを関数>>すべての関数>>アプリケーション制御サブパレットにあるプロパティノードに置き換える必要があります。VIリファレンスをVIリファレンスを開く関数からプロパティノードに配線したら、フロントパネルウィンドウ:Stateプロパティを選択できます。最後に、Hiddenに設定する定数を作成します。

Additional Information

「問題の詳細」セクションで説明したように、このメソッドは、バックグラウンドプロセスとして実行され、ユーザ入力を必要としない実行ファイルに対してのみ推奨されます。LabVIEWフロントパネルの制御器または表示器を使用してユーザ入力を行う必要がある場合は、制御器および表示器を含むフロントパネルが非表示になるため、この方法はお勧めしません。

フロントパネルにアクセスできないため、実行が終了したらプログラムを閉じる方法を含めることが重要です。これを行う1つの方法は、 LabVIEWの実行ファイルを自動的に終了または閉じることができますか?で説明しているように、実行ファイル内からLabVIEWを終了関数を呼び出すことです。それ以外の場合は、Windowsタスク マネージャーから実行ファイルを閉じるか、別のVIからプログラム的に終了することです。

提案した方法は、ロードされたVIまたは実行ファイルのフロントパネルを非表示にします。ただし、隠蔽処理が有効になる前に、フロントパネルが1秒間にロードされることに注意する必要があります。