Frage

Für eine Anforderung per-PC Lizenzschlüssel generieren, muss ich einige Code, die eine stabile und (in der Nähe) eindeutigen Schlüssel auf jedem PC angezeigt werden können. Es ist nicht wird einzigartig garantiert werden, aber in der Nähe. Es hat Bedarf einigermaßen stabil, obwohl zu sein, so daß ein gegebener PC immer das gleiche Ergebnis erzeugt, wenn die Hardware wesentlich geändert wird.

Dies ist eine Windows-Anwendung, mit wxWidgets aber einer Win32 oder andere Option ist in Ordnung.

Ich war über MAC-Adresse zu denken, aber was Laptops, die die Netzwerkkarte in den Stromsparmodus routinemäßig deaktivieren? Ich kam über GetCurrentHwProfile aber es hat nicht ganz Aussehen wie das, was ich will?

War es hilfreich?

Lösung

ich würde nur mit der MAC-Adresse Methode gehen; wenn die drahtlosen / LAN-Karten ausgeschaltet sind, zeigen sie immer noch in den Netzwerkverbindungen auf. Daher sollten Sie noch in der Lage sein, den MAC zu erhalten.

Bedenken Sie: Jedes Mal, Sie würden in der Lage Ihren Webserver zu kontaktieren oder was auch immer Sie diese IDs mit bist zu katalogisieren, der Benutzer wird Haben verfügbar irgendeine Form von Netzwerkkarte haben <. / p>

Oh, und Sie könnten der Lage sein, es CPU-Seriennummer des Kunden Computer unterstützt zu verwenden.

Andere Tipps

Wie über die Seriennummer der Festplatte mit dem Windows installiert ist?

Die Funktion GetVolumeInformation () Willen geben Sie eine solche Seriennummer. Um die ID von der Festplatte Anbieter anstelle der ID von Windows-zugewiesen zugewiesen zuzugreifen, können Sie die Win32_PhysicalMedia Klasse verwenden.

Um den Antrieb zu bestimmen, wo Windows installiert ist, könnten Sie die Variable% windir“erweitern, indem sie die Funktion Expand mit ()

Eine weitere Option, wenn Ihre Architektur ermöglicht, ist UuidCreate () verwenden, um eine zufällige GUID bei der Installation zu erzeugen und sie dauerhaft in der Registrierung speichern. Diese GUID kann dann als ID verwendet werden, solange die Registrierung bleibt. Eine neue Registrierungsdatenbank wird in der Regel als eine neue Installation berücksichtigt.

Eine dritte Möglichkeit ist, einen haben, bekannte Server die IDs zuweisen. Beim Anfahren könnte die Software für die ID in der Registry suchen und wenn nicht gefunden wird, würde den Server kontaktieren und versorgt sie mit seiner MAC-Adresse, Hostnamen, Festplatte Seriennummer, Maschinen SID und einem beliebigen Anzahl von indentifyable Informationen (Schlüssel).

Der Server bestimmt dann, ob der Kunde bereits registriert ist oder nicht auf der Grundlage der gegebenen Informationen. Der Server konnte eine entspannte Politik haben und zum Beispiel benötigen nur die meisten Tasten für ein Spiel, so dass der Mechanismus auch im Falle eines vollständigen auszulöschen der Registrierung und wenn ein Teil funktionieren würde (aber nicht alle) von der Hardware war ersetzt.

ich glaube, es nicht wirklich einfach und einzigartige Methode bisher hier entdeckt.

  1. GetVolumeInformation ruft nicht einmal in der Nähe eindeutige ID .....
  2. jede Hardware-Serien zu verwenden ist problematisch, weil produziert begangen werden nicht immer unterstützt und vor allem zu halten, global eindeutige
  3. GetCurrentHwProfile ruft GUID aber den Wert von Moll betroffen! Änderungen an der Hardware ...
  4. Verwenden von Product Key ... holt U mit dem gestohlenen Software zu beschäftigen -. Es viele Piraten Installationen auf der Welt
  5. Erstellung von eigenen GUID und unter Registry (in jedem Ort) Erhaltung nicht Vervielfältigung verhindern, indem der Bild Klonen ....
    etc... Aus meiner Sicht aus ist der beste Weg, kombinieren: Volume ID + MAC Liste + Maschine SID + Machine Name. Und verwalten offensichtlich Lizenzpolitik auf der Serverseite; 0)

Viele Grüße Mickel.

Für einen ziemlich hirntot Test Ich bin mit dem ProductID Code des Betriebssystemes und die Computernamen - sowohl aus der Registrierung extrahierte. Nicht wirklich sicher, aber es ist alles so tun Sicherheit trotzdem.

Bearbeiten

Um Johns Frage zu beantworten, welche Tasten wir lesen:

SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ ProductID

SYSTEM \ CurrentControlSet \ Control \ Computername \ Computername \ Computername

Wie über die Seriennummer einer CPU. Ich erinnere mich an Microsoft eine api dafür zu schaffen, verwendet, die den notwendigen Assembler Code ausführen würden und gibt Sie alle Arten von Informationen über die CPU einschließlich Seriennummer zurück. Nicht sicher, ob es mit AMD-Chips arbeiten würde oder nicht, ich glaube, es war Intel spezifisch.

Sicher CPU Id sicher und statisch genug !!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top