On the project I'm working now we are using NetExpress Cobol. When it installs it updates a number of keys in the registry. So even if you delete the info in one place it is still in lots of other places as well.

I was thinking of creating a component that implemented a number of options.
1. Time delay. Put a key in the registry for when the product was installed, encrypted with a double check digit (one before enryption, one after).
2. Number of use count - also encrypted along with the double check digit.
3. Server register link - must link to a server to continue working.
4. Register for a specific PC. I have code to get the MAC address of a users network card to help create a unique code per PC.

Unfortunatly this isn't for a game Its for my FAQ creator, currently in version 0.0 Alpha state I have the required code to link it into Internet Explorer as a new band to make creating FAQs from a web page or copied text very easy - a great way to store all those great delphi code snippets out there