There's a couple of approaches. One is the hardware dongle that hangs off the parallel or serial port. The software for them comes with a DLL or ActiveX control that would be called in your LabVIEW program. For a purely software solution, before the software is installed, the customer would have to provide information about some unique hardware feature of their computer. This could be something like a MAC address or hard drive serial number. You would then generate a unique key based on that information and provide it back to the customer. Your program would have to provide a means of writing the key to the registry and then read it before running the program. My company is acutally implementing something similar to the MAC address keying scheme. I don't know where the key generation software came from exactly but I've seen freeware and shareware programs on the web. A google search will probably turn up quite a few. Of course, you wouldn't want to just hand out a key to just everyone that asked for it. There'd have to be some authentication that someone actually purchased the software and that the number of key requests from a customer matched the number of software liscens purchased. A simple database program can be used for this. All of the key generation and checking could be done by a web program so the customer support issues could be minimized.
I'm not sure that either approach is perfect. The dongle allows a user to easily move a program to a new computer but it's a peice of hardware to keep track of and I know of some occasions where the dongle didn't work with some printers or was damaged. The dongles are something you'll have to buy and pass that cost on.
I think the benefits to software keying are greater for the vendor than for the customer. Appart from inversting in a little time up front for the key generation software and customer tracking database, the vendor doesn't need to do an awful lot. It can be a real pain in the shorts for the customer. A new key is required for a replacement computer, disk drive, network card, new OS installation. I've been in the situation where it's taken several days to get a programming running again when an old computer crashed.
I'm sure that there are other schemes. These are just two of the more secure ones that I know.