Question

My VB.NET program is being distributed to some beta testers. They have been given a beta testing "key" code to activate the program in their PC.

I have an online MySQL database. It contains a list of keys. When someone activates his/her key, my program checks against the database, and if the key has never been used before, the program is activated (and they key in the database becomes "used").

This, works for me. But, is there a better way? A more standard, easy way?

Was it helpful?

Solution

For a beta, I'd just hard code an expiration date and forgo any sort of "licensing" on it. Betas are meant to allow specific customers to exercise your product before it's ready for sale. Let them install it as much as they want and on as many machines as they can. That will improve your likelihood of catching errors during the process. For security you might confirm the end date with a public time server.

Once you are ready for sale, use a commercial copy protection tool from a known vendor. We sell DeployLX Licensing which makes it really easy to generate serial numbers and activation codes.

If you try and do it yourself you'll

  1. Probably get it wrong the first time easily losing enough sales or costing you support time that would have been saved with a commercial product.
  2. Waste your own time fighting with hackers and trying to figure this stuff out. Time you could have spent making your product better.

OTHER TIPS

I would consider as well that your software recognise it is registered for the specific machine it is on, and checks this each time it starts.

As it stands, it is likely that someone can probably:

  1. register their copy of the software legitimtely
  2. just copy their install folder to another computer
  3. register a few DLLs / registry entries

...and they'll have a duplicate installation.

See this article for Generating a unique machine id

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top