""Destructive" code in your program - yes or no? Sometimes developers tell that they put destructive routines in their programs in case their internal checking routines detect that the app was cracked. They delete system files on the user's system or mess up the Windows Registry, let the program create buggy results (obviously buggy or just noticeable after careful checks) or simply pop up warnings that "a certain patch" leads to "damage to the system files" or "contains a virus". While this might be a good way to "shock" sensible novice crackers, I truly don't believe this is a good (or even effective) method to protect your work. The typical user will think: "Who knows what activates the virus inside this app -- I'll better delete it at once!" and decide for an alternative product. After all, destructive functions or even threatenings like that may result in severe problems with consumer laws of certain countries. At least your product will be suspicious if something "happens" on the user's computer - and which professional developer would want that?"
Que se que seguias sin creerme, y cuando quieras te muestro un ejemplo comercial...