Okay... I do something a little more sophisticated than what I'm about to tell you, but it is the basics of what I do.
1. Check for the existance of a (binary) "Client" file.
2. If the file does NOT exist;
a) get hardware info and pop up a dialog with the hardware info,
asking your customer to register the software
b) send your customer the (binary) "Client" file with the hardware info.
3. If the file DOES exist, verify the hardware info.
There are a lot of different piracy protection schemes
and this is just one of them.
If you KNOW that your customer will have a constant internet connection,
you could get your software to call a web service which will verify that the software is registered.