If you are on WinXP, you can use the same InstallationID of the OS,
Look at the WinMmgt class Win32_WindowsProductActivation and the
GetInstallationId method.
Otherwise you will have to resort to a combination of MAC address (for
machines with a NIC),
Processor-ID, for machines who has a processor that suport that,
Identifier Strings for attached PnP devices (there are PCI devices that are
soldered on the motherboard),
SMBIOS information from the manifacturer (if any) and many other
pseudo-hardware specific strings / signatures.