Here is something you may want to try, but it requires having a valid "demo period" system set up:
- the first time the program is run, it creates a text file with unique information, such as machine name, login id, and so forth
- the user is required to email you the file, at which point you use a utility to encrypt that file using whatever method you choose (a simple substitution cypher would be adequate)
- you email the encrypted file back, which the user is required to save to a specific location
- until the user gets the encrypted file back the program runs in "demo mode"
- when the program is run and it finds the returned encrypted file, it reads the file, decrypts it, and compares that information to the settings on the computer that originally sent the request (naturally, this function would have to be inaccessible to the user)
- if the encrypted data matches the computer your program is running on the program functions, otherwise it doesn't, or uninstalls itself, or takes other actions of your choosing
Hopefully that will provide some assistance.
----------------------------------
If you are going to fly by the seat of your pants, expect friction burns.
"I don't know" is the beginning of knowledge, not the end.