How to license a VB product for distribution on CD

I have a product that uses active lock. My purchase form accepts the product code and after a purchase is made, i email out the registration code for that product code. I have now been contacted by a distributor who wants to bundle it with their CDs that they sell.
How I can modify the current licensing for this?
The only idea I have is:
The distributor bundles the trial version on their CD. The distributer enters the email address/serial number of buyer on a web based form that I create for them. The buyer then comes to my site, authenticates himself by entering the same serial number/email address, enters the product code (gnerated after installing the trial version on CD) and gets registration information. This way I can keep a tap on how many copies are being sold and can charge accrodingly. However it does seem very painful for the CD distributor who has bulk replication facility and will have to provide me email or serail number for each CD.

Any other idea? Any professinaly available licensing options can help handle this ( sorry but I am new and not aware of many options besides activelock) ?

The answer is probably simple for someone who has experience...and even a reference to a professional company is acceptable. I am giving this max marks since its imp to me.

Will appreciate help on this...
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
(Listening) ...
One solution, u need to hv a application 2 generate the serial key.  During the installation, create a random number. Ask buyer to send the random number to you.  Feed the random number to ur standalone application, to get the serial number. This serial number becomes the installation key for the application.

The installation kit should also churn out the same serial key. (This is possible when, the stand alone application and installation kit shd hv the same algorithm so that serial key matches.)
sambha03Author Commented:
Thanks, however thats the same system I have right now (serial key is the registration code and the registration number is what I call product code). The point is how do i authenticate that the person typing the registration number and wanting the serial key for it, is someone who purchased the CD from the distributor and not someone who donwloaded a free trail version and wants to register it? Any alternatives to this mechanism ?
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

Valliappan ANSenior Tech ConsultantCommented:
You might request the dealer to mail/call you for the serial key. You might code it with a time limit and no. of user licenses.

Does it make sense?
sambha03Author Commented:
Not exactly what I am looking for. Perhaps I have not done a good job in explaining my issue here. Let me try again.

I already have a trial version. It generates a product code after installation. At the time of payment I ask for the product code for which the user wants to pay.  I then email a registration code for that product code.

Now this distributor wants to bundle a full version on CDs that include a lot of other registerd software. He is a mass distributor...may give the CD to retailer who may sell it further. So the distributor does not know the end customer always. The end customer sends me the product code ( this time they have not gone thru my payment mechanism but have purchased the CD at a shop). How do I authenticate that this user is someone who bought a CD from my distributor and not someone who downloaded a trial version from web and has not paid for it yet. I do not see a good way of doing this kind of CD sales with my current licensing mechanism. Anyone has any ideas?

PS: The distributor also has some end cusomter sales, where I can ask for some customer information to authenticate the user. But again, this looks like something that would be too painful for the distributor. What are my options here?

My product is v cheap and the sales i m looking at are not please advice some cheap solution.
Valliappan ANSenior Tech ConsultantCommented:
How does your payment mechanism work? Does it handle customer's email ID also?

Could you produce two different versions of your software, that produce similar but differentiable product code, like trial versions start with 1 and full versions start with 2 (but maybe less obvious), that way you could tell when they give you the product code which version they have.

sambha03Author Commented:
Currently yes. I ask user for email address and product code. But like I mentioned the distributor may/may not have access to it.
Valliappan ANSenior Tech ConsultantCommented:
Then, you might send the code to both distributr and customer by email, or to only one as the case may be.
sambha03Author Commented:
First let me thank all (valli_an,Z_Beeblebrox,atp_expert....)

We need to look at practical issues here. Lets say you bought a CD from a shop. Now you install it and it generates a unique product code on your computer. Then you  send me the product code for registration. I can detect from product code that it was a CD so I send you registration code . Now supposing you give the same CD to another user. It will generate another unique product code on the second users computer. If the second uses emails me his product code , I will have no way to determine if it is a paying customer.

Though my current licesing mechanism works well for web sales ( to direct consumer), I do not think it would be appropriate for CD sales where CDs may go to retailer.. I am pretty sure ppl use soemthing else for licensing on CDs......if anyone has any ideas ( any modifications you can think to current mechanism)...please go ahead and write them in ...lets discuss.

Thanks for all the ideas/help till now....
If you require the user to register with a valid e-mail, and provide his name and stuff, chances are this will discourage the majority of casual pirating, because they wouldn't want to identify themselves for fear that you might track them down. This is the scheme that Microsoft uses with their product licensing, and as far as I know, it is the most successful scheme that does not involve the product calling home everytime it is run. If you were willing to implement a call home scheme, then what you would do is have the distribute put a unique CD key on every CD they distribute, it doesn't matter what it is, maybe even the key for another of the products. Then, you have the user enter that key into the product, and then everytime it starts up, it sends you the key along with a code generated based on the hardware of the machine. If you get two call ins using the same key and different hardware configurations within a short period, you know something is fishy.

sambha03Author Commented:
Thanks Z_Beeblebrox; How abt if someone copies the software, places it on the web. Then the whole world might start registering and i'll be handing out registration codes for free? Sorry, if I am not getting something...I am new to licensing and this is my first product. I dont like the idea of a call-home scheme. Is there any professional company that manages CD licensing/provides licensing software etc?
sambha03Author Commented:
Thanks Z_Beeblebrox; How abt if someone copies the software, places it on the web. Then the whole world might start registering and i'll be handing out registration codes for free? Sorry, if I am not getting something...I am new to licensing and this is my first product. I dont like the idea of a call-home scheme. Is there any professional company that manages CD licensing/provides licensing software etc?
Ok, how about this.

You have a unique CD key sent out with each CD. When the user registers, they must provide the CD key, along with a key that is generated based on the computer's hardware. You then provide them with a license key that only works on that hardware. This way, you will only provide one license key per CD key, and that license key will only work on one machine.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
sambha03Author Commented:
Z_Beeblebrox: That sounds excellent idea to tie up license key with CD keys. I'll check with distributor if they have some CD keys/serial number on their CD. This way they just need to provide me the CD serial numbers that have been sold with my product. It helps me keep a check on how many copies are being sold by them also. It is reasonable to expect a mass distributor of many products to provide you with serial numbers right? Most CD distributors shoudl have atleast some number/unique key with each package right?
If the distributor puts CD keys on the CDs, then I think it would be reasonable for them to provide you with that list, or for them to allow you to put your own CD keys. As for whether they will put a CD key at all, it depends, most major software retail CDs have CD keys, but I am not sure about packages like you describe.

sambha03Author Commented:
Zaphod: Sorry to bother so much. Could yuo advice on how I can put CD keys? I am supposed to provide the distributor with an installable that he can copy and send to his mass replication facility. Any ideas here?
The CD key must be printed and stuck on the CD case or documentation, you can't include it in the installation package, because the installation package will be the same for everyone.

I generate a 32 byte code when my software is installed.
I hash the PC's hard disk serial number and on first use send this hash and the 32B key to my site, I combine the two and produce a third key, this is saved.  Each time my program starts it checks the serial number.  Different?  means keys are being shared.  It also performs the same hash on the two keys as my site does.  Different?  Does not run.

For you I would use this method.
I would supply a slightly different version of your program on the CD that produces a 32 byte key that always contains a given string, or alsways starts with the same numbers, or always has the same check sum.
Then when your program is first run it will call home ONCE to get the key, your site knows that this product is a paid-for version and does not charge for the key.

sambha03Author Commented:
My deal dint wrk so wont be needing this :-(
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.