A good way of protection is to setup a license server, but this would be quite inconvenient for the users because you will have to be connected to the internet to activate or use the software.
Frankly, this is the best way to protect your intellectural property. How many PCs do you think that doesn't have internet access nowadays?
To me online activation is a trend in software industry.