About the way to go to get a "registration model" I'm thinking on this tipe of logic:
Save a String in the regestry
prompt the user abou its name(name)
Generate a random string and use name to crypto it then the has to e-mail my company and reference the crypted result wich will be again crypted to match a specific String and then return it to the user who must enter it in the aproiate field, the the program recrypt the given string with the one returned in the random generated string and if it matches the saved regestry string the the serial number entered is valid..its a bit confusing but is a unique way of making sure it stays legal...
Logic:
save registry key, say "Cableguy"
Pronpt the user for name, say "Paulo Gomes"
Generate a ramdom string, say "xpto"
Crypt "Paulo Gomes" with crypto key "xpto"
Result is the registration key to send to software co. along with the User Name
With this registration key and User name we, the software co, create a serial key that when crypted with the key "registration key" cames out as "cableguy".
So unless we have two devices giving exactly the same random string, it is unlikelly that two users get the same serial number....
its a bit like the activation key from microsoft...