I suggest you read
Piracy and Unconventional Wisdom[
^] even though it doesn't who you directly what you can do, it gives you alot of insight though.
And here are some more to the point Code Project articles
Contacting a Registration Server to obtain a unique registration key based on unique machine ID[
^]
Application Trial Maker[
^]
A Secure Software Distributon SDK[
^]
Whatever you do don't trust what these guys write, you need to know the "software procection science" yourself inorder to know how exactly you can protect your software.
Ofcourse there also exist 3rd party solutions, which you have to pay for, but again don't trust these guys just because it costs money doesn't mean it'll slot a cracker down by more than a couple of seconds.