>>Hi folks
>>As always I need help!
>>How can I protect my software from being copied.
>>Is there a chance to create a function that looks for the serial number of the hard drive each time the software starts? So if they install it on a diferent hard drive it wont work. That would be nice and this way I can sleep better. Or are there other better options?
>>Please advice me of any option
>>Thanks in advance
>
>Kilian,
>
>You'll sleep better until the first user needs to replace their hard drive and they can't run your app anymore. Personally, I don't believe in copy protection but if I did and I had to use something I would spring for one of the hardward dongles that hanges off the parallel port.
Hardware dongles work; another approach is to have the system tie-in periodically to a central location via the Internet or toll-free dialup in order to renew an activation key. Attempting to renew an activation key that someone else has already renewed opens a world of options; the simplest is to make the software shut down until the customer contacts the vendor. If the legitimate customer contacts you, you can ask politely who they might have given copies of the software to for evaluation, and issue a new activation key to them to get them back up and running. The old activation key, now associated with an illicit 'evaluation copy' can trigger some action when it is next renewed. If the customer had to go to a backup that preceded their last activation key's use, you can issue them a new key immediately and have them running again with minimal effort and downtime, and there's no need to question if someone else is running a copy. If it's an unregistered user who got caught, you can offer to sell them a legitimate license with their own activation key, and may have other options if it appears that someone sold them a pirated copy.
This obviously requires some infrastructure at the vendor's end - a full-time online presense with a system that can renew valid keys and record updates and rejections, but can be less obtrusive if things like automated program updates, bug reporting and the like are incorporated.