Windows developer SDK

HardwareID DLL

Create a unique, human-readable computer ID for license binding, seat control and virtual-machine detection.

  • Win32 & Win64
  • Royalty-free
  • No Adobe Acrobat
  • v5.10

Overview

HardwareID DLL returns a unique machine fingerprint collected from the CPU, hard disk, BIOS and network adapter. The ID is read directly from hardware rather than the registry, so it survives software reinstallation and can be used to bind a license to a computer.

The output is a simplified, human-readable ID that customers can read over the phone or paste into a registration form. You can choose which hardware sources to include, making the ID tolerant of component upgrades.

It is a plain Windows DLL — call it with P/Invoke, Declare, external declarations or GetProcAddress. It does not require administrator rights and detects common virtual-machine environments.

Features

Key features

  • Generate a unique machine ID from CPU, HDD, BIOS and NIC data.
  • Choose which hardware sources contribute to the ID.
  • Detect whether the process is running inside VMware or Virtual PC.
  • Work without administrator rights, including restricted areas.
  • Return a short, human-readable ID for phone, fax or email registration.
  • Expose the DLL version for diagnostics.
  • Use from Delphi, C++ Builder, Visual C++, VB6, VB.NET, C#, PowerBuilder, PowerBASIC, Visual FoxPro and VBA.
  • Rename or relocate the DLL if your application needs it.
  • Supports Windows XP – 11, Windows Server 2003 – 2016 (incl. R2).

Use cases

What you can build

License binding

Lock a license key to one machine without a dongle.

Seat control

Count and limit concurrent installations.

Trial resets

Detect when a trial is recreated on the same hardware.

Virtual-machine policy

Warn or block when the app runs in a VM, depending on your license rules.

Sample code

C# example

C#
[DllImport("HardwareID.dll", CharSet = CharSet.Ansi,
    CallingConvention = CallingConvention.StdCall)]
public static extern void SetLicenseKey(string licenseKey);

[DllImport("HardwareID.dll", CharSet = CharSet.Ansi,
    CallingConvention = CallingConvention.StdCall)]
public static extern int GetHardwareId(
    bool hdd, bool nic, bool cpu, bool bios,
    StringBuilder buffer, int maxCount);

// Call once at startup.
SetLicenseKey("YOUR-LICENSE-KEY");

var id = new StringBuilder(255);
GetHardwareId(true, true, true, true, id, id.Capacity);
Console.WriteLine(id.ToString());

The Delphi, C++ Builder, VB.NET and VBA tutorials show the equivalent declarations for each compiler.

Supported languages and environments

  • C#
  • VB.NET
  • VB6
  • Delphi
  • C++ Builder
  • Visual C++
  • PowerBuilder
  • PowerBASIC
  • Visual FoxPro
  • VBA
  • Clarion

More examples are available on request. Your project can use late binding, an imported type library, or P/Invoke where applicable.

Licensing: call SetLicenseKey() with the key you receive after purchase. Trial builds run with the limitation described above.

Interface reference

Main methods

The installer includes a complete interface reference and demo projects.

MethodPurpose
GetHardwareId(hdd, nic, cpu, bios, buffer, maxCount)Write the machine ID into a caller-supplied buffer. Choose which hardware sources to include.
IsInsideVMware()Return non-zero when running inside VMware.
IsInsideVirtualPC()Return non-zero when running inside Virtual PC.
SetAppName(name)Customize the application name used by the component.
SetLicenseKey(key)Unlock the component with your license key.
GetDllVer()Return the DLL version for support and diagnostics.

Pricing

One-time licenses

Royalty-free distribution. Prices in USD; taxes and VAT are handled by our Merchant of Record at checkout.

Single developer

$59.95

1 developer, or 1 server deployment

  • Royalty-free distribution
  • 32-bit and 64-bit builds
  • Email support
Buy license

Enterprise

$249.95

Unlimited developers, servers and applications

  • Royalty-free distribution
  • 32-bit and 64-bit builds
  • Email support
Buy license

Need a custom build or an upgrade? Contact us. See the refund policy.

Free trial

Download HardwareID DLL

Install the trial, run the sample code, and evaluate the output on your own documents. The installer includes the component, demo application and documentation.

  • Version 5.10 · 3.80 MB
  • Trial limitation: The trial displays a reminder window.
  • Runs on Windows XP–11 and Windows Server 2003–2016
  • Unlocks with your registration key after purchase

The full version and registration key are delivered by email after purchase.

Example projects

FAQ

HardwareID DLL questions

Is the hardware ID stable across reboots and updates?
Yes. It is read from hardware sources rather than the registry, and you can choose which sources to include to tolerate upgrades.
Does it require administrator rights?
No. It works in restricted user accounts.
Can I detect virtual machines?
Yes. IsInsideVMware() and IsInsideVirtualPC() report common VM environments.
What is the trial limitation?
The trial displays a reminder window. A purchased key removes it.

Related products

Often used together

Evaluate HardwareID DLL on your own files.

The trial is free and does not require registration. See the output before you buy.