07-04-2017 03:45 AM
Hello
I have written a LabVIEW application, created an executable and loaded it onto a target PC.
I would like to prevent the end user from then loading this onto subsequent PCs.
I ideally don't want to use a USB dongle, is there another way to achieve this?
Thanks in advance
Lee
Solved! Go to Solution.
07-04-2017 03:53 AM
Hi LeeBowers,
did you install LabVIEW on your development PC on your own?
Did you activate your LabVIEW license on your own?
Then you would know how to handle this problem… 😄
NI generates a "computer ID" using some hardware information of the PC. Then you have to contact NI giving your computerID and your license number to receive an activation code. That activation code enables usage of LabVIEW on the computer identified by the computerID…
07-04-2017 06:28 AM
@GerdW wrote:
Hi LeeBowers,
did you install LabVIEW on your development PC on your own?
Did you activate your LabVIEW license on your own?
Then you would know how to handle this problem… 😄
NI generates a "computer ID" using some hardware information of the PC. Then you have to contact NI giving your computerID and your license number to receive an activation code. That activation code enables usage of LabVIEW on the computer identified by the computerID…
you also may take a look at:
http://digital.ni.com/public.nsf/allkb/CEF3043068981186862578090074BF31
07-04-2017 06:48 AM
Hello
Thank you for your reply.
I am not sure if I have worded my question correctly, or not understanding your response.
I have my PC which I have installed LabVIEW onto and registered it, etc. I then created a standalone application and put that onto a target machine, along with a LabVIEW runtime engine. This works fine and I believe I don't need to have a license loaded onto the target machine.
I want to stop the end user then taking the executable and putting onto subsequent PCs.
Thank you
Lee
07-04-2017 07:08 AM
Hi Lee,
I want to stop the end user then taking the executable and putting onto subsequent PCs.
Then YOU have to implement some kind of "activation key" in YOUR executable.
I sketched the algorithm implemented by NI in my former message - as an inspiration to you!
07-04-2017 07:17 AM
Hello again
Pennies dropped, I get it - thank you.
From the link you sent, it would seem to me that vol would be a simpler way forward. It doesn't need to be overly complicated. It needs to be robust. I assume vol is the 'number' for the hard disk, and again I assume that whilst this is not unique - they cant be too common?
Could you recommend a good way to encrypt this number so I can provide an activation code.
Many thanks again
Lee
07-04-2017 07:23 AM - edited 07-04-2017 07:30 AM
Hi Lee,
Could you recommend a good way to encrypt this number so I can provide an activation code.
Well, you may look up "encryption" at Wikipedia. Or look for "hash key" to get even more ideas…
I assume vol is the 'number' for the hard disk, and again I assume that whilst this is not unique - they cant be too common?
AFAIK harddrive volume ID numbers are unique.
The same applies to MAC addresses - unless your user uses a virtual network driver, where one can set its own MAC address…
07-04-2017 07:40 AM
an example of getting the serial number of the disk,
i can make no guarantee, that the subkey will not be different on varying systems.
you will have to hardcode the serial number in your code distribution
07-04-2017 07:50 AM
that is great, thank you - I understand.
I was going to use the system exec to get the volume, unsure if that is a more robust way and would welcome any comment
01-20-2019 08:26 AM
Hi
Not sure of the robustness of using system exec for getting vol info.
But let me tell you about this program i made for which i used getcomputerID.exe and system exec for making unique key for the pc to make it run only on single pc. This program had a problem that i need to install NI License along with my program for getcomputerID.exe to work and whenever the user uses VPN, it gives out different key which makes the program fail its purpose.
If you know how to get vol info with system exec without using getcomputerID.exe then please tell me.
Thanks
Rishav