Was möchtest Du mit der HardwareID erreichen? Registrierte Anwender sollen Deine Software einfacher erneut installieren können? Mit einem ausgewechselten Stück Hardware (SSD?) geht das in der Regel schon schief. Den PC des Anwenders als Dongle zu nutzen war mal eine populäre Sache, weswegen man ja auch bei Intel sogar Seriennummern in die CPU einbaute. Allerdings ist das 10 Jahre her, und seither haben sich viel zu viele gemeldet, die das nicht so toll fanden, und auch gute Gründe dafür gaben. Und austricksen lässt sich das mit VMs ohnehin allzu leicht.
Da Du ja ohnehin eine
DB und Onlineverbindung dazu herstellen mußt, ist es viel einfacher, User und Registrierungsschlüssel abzufragen (so wie Embarcadero...nur eben besser, bitte), als irgendwelche HardwareIDs, die durch semiambitionierte Anwender geändert werden können, schlicht durch Austausch von ein bis zwei Komponenten.
Wie bei jedem Kopierschutz möchte ich anregen, sehr genau darüber nachzudenken, ob Zeit und Aufwand, die in den Kopierschutz gesteckt werden, nicht besser im eigentlichen Programm aufgehoben sind. Höhere Qualität erzeugt zufriedenere Kunden, die wiederum die beste Werbung für ein Produkt sind, die man für Geld nicht kaufen kann.
Sherlock