I am having a problem using the open VI reference function to determine if another VI is currently running. I have code that passes the specific path to a particular VI into the Open VI reference function, then checks the front panel and execution state of the returned VI reference variable. Normally the front panel state reads "Open" and the Execution state reads "Run Top Level" whenever the desired VI is running. The desired via is called touchSim and if its not running, the user will be prompted. This code has worked as-is for quite a long time, across several versions of LabVIEW (currently 8.2.1).
With the advent of project files, we created a new project file around the touchSim vi which contains related VIs, icons, etc. The actual code has not changed. Unfortunately, this has created a strange behavior with the VI reference property node values. If I double-click the touchSim.vi from Windows and run it, the front panel and execution states are as expected, and everything is fine. But now a problem occurs if instead I open the new project file first, double-click touchSim.vi and then run it. The same code that used to work now returns front panel state as "Closed" and execution state as "Idle" - even though the same VI is actually running, just as before. The only difference is I started it up via the project file. I checked the LabVIEW constant "Current VI's Path" from within touchSIm.vi and in both scenarios it reads exactly the same.
What's the problem?