Jump to content
News about the LabVIEW Wiki! Read more... ×
hooovahh

LabVIEW Tray Launcher

Recommended Posts

So here's a personal project I've been working on for a little while. Basically it's a LabVIEW version launcher, with a few other useful features. I developed this for my own benefit, and it has helped with my productivity, if you don't like it or think it's unnecessary that's fine you're welcome to give your opinion, but I find it useful and for that reason I'm putting it out there for others to try.

What this program does is adds a icon in your system tray (by the clock) that you can right click, and launch any version of LabVIEW installed. If you try to launch a version of LabVIEW that is already running it will bring it into focus based on it's processor ID.

You can also right click the icon and launch any version of TestStand installed. This has not been tested very much and it may not work properly.

You can also right click the icon and kill any version of LabVIEW that may have hung or is unresponsive. This performs a taskkill on any one version, or all versions of LabVIEW running.

You can also right click the icon and abort any running LabVIEW VI in any version of LabVIEW (after you configure the program to use the right ports for you versions of LabVIEW). There is a limitation with this at the moment where it can't abort a VI that was opened from a project file. Not sure how to get around this any help is appreciated.

And lastly what this program does is whenever a VI is ran in windows (double click a VI) this program will take over, and determine what versions of LabVIEW installed it can be opened with. If more than one version is suitable then it will ask you what version to open it with. Here it will also show what versions are running and which one is the default version. By pressing (or holding) CTRL when the window comes up it will open the VI with the default version of LabVIEW. This can be changed by double clicking the icon in the system tray to open with the default version, and only ask which version to open it with by holding CTRL.

LVTrayLauncher2.jpg

Now that you're interested here's how to use it. First you'll need to download and install an ActiveX component, that allows you to make icons in your system tray (posted by KileenC here).

http://forums.ni.com...IEWTrayIcon.zip

Then download LV Tray Launcher EXEs Only LV Tray Launcher EXEs Only 1.0.zip If you have LabVIEW 7.1 runtime installed, run LVTrayLauncher.exe. You should now have an icon in your system tray that looks like a space ship. If not check your task manager and see that both axsTrayIcon.exe and LVTrayLauncher.exe are running. If they aren't kill them both and start axsTrayIcon.exe, then start LVTrayLauncher.exe.

LVTrayLauncher.jpg

If you don't have LabVIEW 7.1 runtime installed I do have a runtime less EXE but I'm not sure if it's legal to post it since it contains files that are NIs and I would be copying them to my own server. Any opinions out there about the legality?

If you want to see the source, it's attached and saved in 7.1. There is also a readme in each of the attachments with a little more insite into the application. Alot of the source is just pieces of code from LAVA and NI's forums, I tried crediting everyone in the about window, but if you see some code that you think may be yours please let me know so I can give proper credit those that helped.

Any questions or comments are welcome, but I don't know how much spare time I'm going to have to support this. So sorry if this is the only version ever released.

EDIT: Forgot to mention, here the packages I used:

nirsc_html_help_common 2.0-1

oglib_array 2.7-1

oglib_error 2.3-2

oglib_lvdata 2.9-1

oglib_string 2.6-1

oglib_time 2.3-2

oglib_variantconfig 2.7-2

ogrsc_dynamicpalette 0.18-1

Tray Program Source 1.0.zip

  • Like 1

Share this post


Link to post
Share on other sites

I suggest you sumit this to the LAVA Code Repository.

Share this post


Link to post
Share on other sites

I suggest you sumit this to the LAVA Code Repository.

I may but I don't think it's mature enough. It has only been tested on XP, doesn't abort VIs opened in projects, uses AutoIt to perform certain tasks, and uses a LabWindows/CVI ActiveX to create the tray icon. If these things could be fixed, so that it uses purly LabVIEW and maybe a .NET for the tray icon I will definitely post it in the CR. But for now I just want an opinion of the features and possible bugs.

Share this post


Link to post
Share on other sites

EDIT: Forgot to mention, here the packages I used:

nirsc_html_help_common 2.0-1

oglib_array 2.7-1

oglib_error 2.3-2

oglib_lvdata 2.9-1

oglib_string 2.6-1

oglib_time 2.3-2

oglib_variantconfig 2.7-2

ogrsc_dynamicpalette 0.18-1

Very cool! Also, I suggest that you provide a VI Package Configuration (*.vipc) with your sources, to make it easy for people to install all the required dependencies.

Share this post


Link to post
Share on other sites

Very cool! Also, I suggest that you provide a VI Package Configuration (*.vipc) with your sources, to make it easy for people to install all the required dependencies.

Yeah I actually have one but last I knew VIPC files were version specific, so if I posted the vipc for 7.1 people trying to open it with 8.0 would need to manually install the packages anyway. Correct me if I'm wrong.

Also I had issues adding attachments to an edited post. In both FF 3.5 and IE 7.

Share this post


Link to post
Share on other sites
Yeah I actually have one but last I knew VIPC files were version specific, so if I posted the vipc for 7.1 people trying to open it with 8.0 would need to manually install the packages anyway. Correct me if I'm wrong.

You can create a vipc file that lists the packages, but doesn't actually contain the packages - I think that would be the way to go for this.

Also I had issues adding attachments to an edited post. In both FF 3.5 and IE 7.

This is not the right place to report board issues. Go here instead.

Share this post


Link to post
Share on other sites

Thanks Brian!  :worshippy:

No problem, I figured you of all people would be interested and I was hoping you'd see this.  There is plenty of room for improvement but I've been using it without any problems for a while.  I sorta feel bad that I didn't share it sooner.

Share this post


Link to post
Share on other sites

No problem, I figured you of all people would be interested and I was hoping you'd see this.  There is plenty of room for improvement but I've been using it without any problems for a while.  I sorta feel bad that I didn't share it sooner.

 

When we talked about it I had multiple LabVIEW versions installed on my dev machine, but since then I've moved on to use separate VM's for the different LabVIEW versions.

 

I do still have one laptop with multiple LabVIEW versions, used occasionally for building old SW packages, and this tool is very handy to have.

 

/J

  • Like 1

Share this post


Link to post
Share on other sites

Yeah I go back and forth.  I'll use a VM for each version of LabVIEW, and then realize this works well on a per-project basis, but when working on code say from the internet, I'd like a single machine with many versions installed.  Lately I've gone back to the many versions, in one OS technique.  It really depends on your work flow.

 

Today all of my testers have a full development environment that is linked to my user name.  So I log in and I have the only version of needed for that project for that test with all the toolkits, drivers, and VIPM stuff.  So if I need to make changes to software it is easiest to just go to that tester make changes and push it to SCC.  But if I were in a place where I was making project builds from my work machine, then I could see problems with upgrading something like DAQmx for 2014, and being forced to upgrade DAQmx for 2011 projects too.

Share this post


Link to post
Share on other sites

Okay new version 1.3.0.  

  • This adds support for having only the 2015 runtime engine installed
  • Adds the ability to abort all VIs in private contexts (still not clones) found in the settings window because I didn't think this was a common feature needed
  • Several bug fixes with the registry, and screwing up what program controls what extensions
  • Removed a few external dependencies (like pv.exe)
  • Added a listbox to the settings for what file extensions this program takes over (by default VI and CTL)
  • Moved config file location from Program Files to ProgramData folder
  • Simplified open file process
  • Few bug fixes for picking the right version of LabVIEW when selecting the only default option
  • Added some asynchronous calls to help prevent a lockup from a non-responsive LabVIEW version.

 

I really think this is the most stable version and have been using it for a few weeks without any real issues.  I still have some locking up issues when LabVIEW doesn't respond but it doesn't happen often, and a restart of the tray program fixes it for now.  I updated the page on my personal site, but here are the direct links.  If for some reason there is an issue with it, closing it from the system tray (or taskmanager) and then relaunching LabVIEW should return things to the way they are normally.  This is because on startup LabVIEW writes to the registry to take over the file extensions.

 

Source 1.3.0

Installer 1.3.0

Share this post


Link to post
Share on other sites

So I finally got around to putting this up on the code repository.  Source version 1.5.0 can be found here.  The built installer can be found here.  I added support for versions up to 2017, and added the feature to prompt if a VI is configured to run on open.  Which allows to just open instead of open and run.  And added support for the .VIM file extension.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.