Software lock to limit one installation per account

It is quite easy to use software without authorization in Windows PCs. May be it will become a thing of past with Windows is going the mobile OS ways. Verifying the user (or at least the device) is not a problem in mobile apps.

In mobile platforms each device is identified with a user. That was not the case with PCs. Slowly this will change. But for the time being, we still have this problem.

How to check & restrict the software to run on only one PC (per license / account or whatever)?

We can get the MAC address & restrict installation next time if MAC is different. It's not uncommon but changing MAC address is no big deal. Another option I heard is getting serial number of Hard Disk.

The serial number of Hard Disk seems fool proof, but it has it's own set of problems. Some of the latest Hard Disk's doesn't come with serial numbers (helps in privacy!). And obtaining the serial number procedure seems to vary with manufacturer. May cause problem in genuine installations & frustrate the user. A big concern there.

There is an analysis at CodeProject that also has a sample / working copy of both.

What do you think? Is there any better way for this?