LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Limit a program for use on only 1 PC

Solved!
Go to solution

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

 

0 Kudos
Message 1 of 11
(3,863 Views)

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…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 11
(3,859 Views)

@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

0 Kudos
Message 3 of 11
(3,818 Views)

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

0 Kudos
Message 4 of 11
(3,813 Views)

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!

 

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 5 of 11
(3,807 Views)

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

0 Kudos
Message 6 of 11
(3,804 Views)

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…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 7 of 11
(3,800 Views)
Solution
Accepted by topic author LeeBowers1

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.

example-read-registry-key.png

 

you will have to hardcode the serial number in your code distribution


If Tetris has taught me anything, it's errors pile up and accomplishments disappear.
Message 8 of 11
(3,791 Views)

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

 

0 Kudos
Message 9 of 11
(3,783 Views)

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

0 Kudos
Message 10 of 11
(3,041 Views)