Delphi Motherboard Serial Number

Motherboard Serial Number Mcp73vt-pm(sn) DocumentsSee More On Stackoverflow

Retrieve Serial number of hard disk and mother board? Motherboard type, hard disk manufacturer. How can i get a processor serial number? Here's some code from good old bwd.hope he doesn't mind I posted it instead of him. Quote Is there a free VCL for reading CPU or motherboard serial number? I need to limit usage of a software to a certain computer and I need a clue. How do I get the motherboard ID or serial number from Delphi code? Is there any example code or articles that I can look?

Problem/Question/Abstract: Different BIOS manufacturers have placed the serial numbers and other BIOS information in different memory locations, so the code you can usually find in the net to get this information might work with some machines but not with others. Answer: For a simple copy-protection scheme we need to know whether the machine that is executing our application is the one where it was installed. We can save the machine data in the Windows Registry when the application is installed or executed for the first time, and then every time the application gets executed we compare the machine data with the one we saved to see if they are the same or not. But, what machine data should we use and how do we get it? In a past issue we showed how to get the volume serial number of a logical disk drive, but normally this is not satisfying for a software developer since this number can be changed. A better solution could be using the BIOS serial number. BIOS stands for Basic Input/Output System and basically is a chip on the motherboard of the PC that contains the initialization program of the PC (everything until the load of the boot sector of the hard disk or other boot device) and some basic device-access routines.

Unfortunately, different BIOS manufacturers have placed the serial numbers and other BIOS information in different memory locations, so the code you can usually find in the net to get this information might work with some machines but not with others. However, most (if not all) BIOS manufacturers have placed the information somewhere in the last 8 Kb of the first Mb of memory, i. Der Patrizier 2 Gold Patch. e. In the address space from $000FE000 to $000FFFFF. Assuming that 's' is a string variable, the following code would store these 8 Kb in it: SetString(s, PChar(Ptr($FE000)), $2000); // $2000 = 8196 We can take the last 64 Kb to be sure we are not missing anything: SetString(s, PChar(Ptr($F0000)), $10000); // $10000 = 65536 The problem is that it's ill-advised to store 'large volumes' of data in the Windows Registry. It would be better if we could restrict to 256 bytes or less using some hashing/checksum technique.