How to start different LabVIEW version with actxserver

6 views (last 30 days)
Daniel Bachrathy
Daniel Bachrathy on 29 Jan 2019
Edited: Guillaume on 4 Feb 2019
I have different LabVIEW vestions instaled in my computer (2016,2017).
I can reach my vi made in 2017 version by:
e=actxserver('LabVIEW.Application')
vipath='C:\test.vi';
vi=invoke(e,'GetVIReference',vipath);
viBD.SetControlValue('k1',2.0*rand(1));
viBD.Run;
However, I have to run an another vi in 2016 32 bit vresion. How to specity the related version at the actxserver command?

Answers (2)

Guillaume
Guillaume on 29 Jan 2019
Edited: Guillaume on 4 Feb 2019
I don't have labview 2016 installed so can't check but it's probably going to be:
actxserver('LabVIEW.Application.7')
If not, you'll have to find the correct progid yourself. It's not too difficult:
  • run regedit.exe (be careful when using regedit not to modify anything as you can wreck your OS)
  • Press F3 and search for LabVIEW.Application
  • You may have to press F3 several times to continue the search until it finds a key called ProgID whose value will be LabView.Application.X (with X some number). Two lines above look at the value of the LocalServer key, its value will be something like C:\Program Files (x86)\National Instruments\Labview xxxx\LabVIEW.exe /Automation
  • If the LocalServer key is not the version you want, continue the search until it is.
  • The corresponding ProgID is the one you need to give to actxserver
Note: The version dependent progID for for 2007 is LabVIEW.Application.8
edit: Ah, well! See answer from NI below (above? depending on which answer gets accepted/voted). All the versions specific progid actually start the same server. Unfortunately, that's managed by LabVIEW so it's not something you can work around on the matlab side

Brandon Nguyen
Brandon Nguyen on 4 Feb 2019
Edited: Brandon Nguyen on 4 Feb 2019
Hey Daniel,
Unfortunately we don't have a supported method to launch different versions of LabVIEW through ActiveX. Currently, the version of LabVIEW that last launched registers itself as the server, and all the version-specific progIDs point to the same CLSID. As such, we are unable to launch multiple versions of LabVIEW with this method.
This was never a design requirement for us and thus never addressed, however if you feel strongly about this idea you can post to our Idea Exchange where we (R&D) pull customer-generated feature requests from:
I am curious though, what is the motivation to use multiple LabVIEW versions in parallel? LabVIEW can access VIs written in any previous version, so if that is the main qualm using 2017 should be sufficient. However, I'd love to hear your thoughts.
Best,
Brandon Nguyen | Staff Product Support Engineer | National Instruments

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!