

If there is no license or CD key, another way is to generate a signature from the software and hardware of the machine and pass that to the web service.Ĭache the estimated expiry date somewhere as a fallback. Later runs of the app call in to see if the clock has run out.

That starts the clock that is kept at your company's server, the clock for this copy of the app at this particular customer's system. The app passes that to your company's web service and say "first run of the app".

The best solution is when the install medium has its unique CD key or license. So if you want to build your own this is the general idea: If you are worried about users hacking into the time trial it's also more secure to make a web service call to your company's web site. One of the reasons is that it seems fairer to start the clock at first use of the app, not at install time. I have found it easier to provide this functionality in the application (especially if you have a company web site that can provide web service calls).
