Sell service instead. Like, if you develop a game, sell online access to maps which cannot be downloaded, but can be used once connected. Maintaining accounts is much easier than maintaining keys which can be cracked.
Well, since the question is, "Any programmers here that are able to make a living selling their own programs?", I thought this approach would be excluded... But it's true that selling services is pretty much the absolute anti-piracy tactic.
"SaaS" seems to be the buzzword. Thanks for reminding me about it, I'll consider some possible implementations.