Well the activation process is buried deep within the binary code, it is not even in the registry or we'd just hack it to death. There is an encryption algorithm that MS use so that you can't intercept the activation packets and spoof them.
Yes, wouldn't it be nice if every pc had a unique id we could use in our code. Pity Intel and the other processor makers don't imnplement such a thing cos that would be pretty much what you are after, but they don't. There is the MAC address of course, the id of the network card or dsl modem if you are using them. Can't get at them through the browser except with something like a java applet. Dial-up user would be left out, and installing a new NIC or dsl router would blow it right away.
All you could do would be to create a registry key if it's winders, but then you would have to be running an install with the user's permission. Won't work if they are using Linux or a Mac either.