将LabVIEW可执行文件作为后台进程运行

更新 Jan 8, 2019

适用于

Software

  • LabVIEW Professional
  • LabVIEW Application Builder Module

问题详述

我已经使用LabVIEW Application Builder将LabVIEW VI构建为独立应用程序(可执行文件)中。可执行文件不需要任何用户输入,因此我想将其作为后台任务运行。如何隐藏可执行的前面板窗口并删除运行应用程序时显示的任何任务栏图标?

解决方案

要在运行可执行文件时隐藏应用程序的前面板窗口并删除任何任务栏图标,您需要编辑构建可执行文件的VI,然后重新构建它。要进行必要的更改,请按照下列步骤操作:

对于LabVIEW 7.1及更高版本:
  • 隐藏前面板窗口:
  1. 打开生成可执行文件中用到的顶层VI。
  2. 在顶层VI的开头,使用位于Functions Palette»Programming»File I/O»File Constants subpalette(函数选板»编程»文件I/O»文件常量子选板)Current VI's Path VI(当前VI路径)获取当前VI的文件路径
  3. 使用Functions Palette»Programming»Application Control(函数选板»编程»应用程序控制)中Open VI Reference VI (打开VI引用),来打开对顶层VI的引用
  4. 路径Current VI's Path(当前VI路径)输出到Open VI Reference(打开VI引用)的vi路径输入。
  5. Open VI Reference(打开VI引用)的vi参考输出连接到Invoke Node VI(调用节点)的参考输入端,该参考输入端位于Functions Palette»Programming»Application Control(函数选板»编程»应用程序控制)子选板中。
  6. 单击Invoke Node(调用节点)上的方法。在出现的下拉菜单中选择前面板 ,然后选择打开
  7. State参数上创建一个常量,然后选择Hidden
  8. 使用位于Functions»Programming»Application Control(函数»编程»应用程序控制)子选板中的Close Reference VI(关闭引用)来关闭引用。您的程序框图现在应如下所示:
  1. 保存VI后,重建可执行文件。
  • 隐藏Windows任务栏图标:
  1. 将顶层VI构建为可执行文件后,打开其相应的.ini文件。该文件应位于构建可执行文件的同一目录中。在LabVIEW 7.1及更早版本中,LabVIEW在构建可执行文件时不会自动为您创建.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:
按照上述步骤进行操作,但有一个例外。您需要使用位于 Functions»All Functions»Application Control(函数»所有函数»应用程序控制子选板中的属性节点替换调用节点函数。将VI引用从Open VI Reference函数连接到属性节点后,您将能够选择Front Panel Window:State(前面板窗口:状态)属性。最后,创建一个常量以将其设置为Hidden

相关信息

如“问题详细信息”部分所述,此方法仅建议用于作为后台进程运行且不需要用户输入的可执行文件。如果您需要通过LabVIEW前面板控件或显示控件进行任何用户输入,建议不要使用此方法,因为包含控件和显示控件的前面板将被隐藏。

一旦程序执行完毕后关闭程序的方法很重要,因为您将无法访问前面板。一种方法是从可执行文件中调用Quit LabVIEW函数, 如何从LabVIEW LabVIEW可执行文件中退出而不必关闭它? 。否则,您需要关闭Windows任务管理器中的可执行文件,或者以编程方式从另一个VI关闭应用程序,如何以编程方式打开和关闭另一个VI中的VI?

提出的方法将在加载后隐藏VI或可执行文件的前面板。但是,在启用隐藏进程之前,你可能会注意到前面板出现了一瞬间然后立刻被隐藏了

本文是否有帮助?

无帮助