2009-07-31 10 views
2

Ich bin neu in VC++ Sprache, also möchte ich System eindeutige ID mit VC++ Sprache. also kann mir bitte jemand helfen bei der Programmierung, wie ich die systemeigene ID bekomme?Wie bekomme ich eine eindeutige ID mit vC++ Code?

+3

Woran denken Sie, dass Systeme eine eindeutige ID haben? –

+2

Was genau ist eine "system unique id"? Eine ID, die im Rahmen des Systems, auf dem der Prozess gerade ausgeführt wird, garantiert eindeutig ist, oder eine ID, die das aktuelle System eindeutig identifiziert? –

+0

Ich denke, Sie müssen uns ein wenig mehr Kontext geben. Können Sie uns wissen lassen, wie diese eindeutige ID in Ihrer Anwendung verwendet wird? Auf diese Weise können wir entscheiden, welche Lösung angemessen ist oder nicht. – Rich

Antwort

2

Warum nicht die MAC-Adresse von der Netzwerkkarte verwenden. Dies sollte einmalig sein, wird sich aber ändern, wenn Sie die Netzwerkkarte ändern.

Siehe die api GetAdaptersInfo. Referenz http://msdn.microsoft.com/en-us/library/aa365917(VS.85).aspx

+0

Mindestens drei Gründe - möglicherweise keine Netzwerkkarte, möglicherweise mehr als eine Netzwerkkarte, die Netzwerkkarte (n) kann geändert werden. –

+0

Was ist mit Systemen, die keine Netzwerkkarte haben? –

+0

Wenn mehr als eine Netzwerkkarte, wählen Sie die erste. Wenn sich die Netzwerkkarte ändert, führen Sie eine erneute Registrierung durch. Wenn keine Netzwerkkarte vorhanden ist, geben Sie die Maschine einem Museum und kaufen Sie eine neue. .) Ich stimme zu MAC-Adresse ist keine 100% Lösung, aber es sollte für die überwiegende Mehrheit der Situationen gerecht werden. – Rich

1

Wenn Sie eine eindeutige ID basierend auf einer bestimmten Maschine erstellen möchten, eine der Möglichkeiten, die ich mir vorstellen kann, ist mit guten alten Boost.

Zum Beispiel können Sie eine der Boost-Kandidaten-Bibliotheken namens UUID (GUID-Generierung) nachschlagen und boost :: filesystem nachschlagen. Unter Verwendung des Dateisystems können Sie Erstellungsdaten für einige der Systemdateien erstellen und diese Zeichenfolgen verwenden, um eine GUID zu generieren.

Nur ein Gedanke, hoffen, dass es

  • hilft Ihnen, die UUID-Bibliothek finden here

    • Sie die Filesystem-Bibliothek Dokumentation finden here
+0

Das identifiziert das Datum der Windows-Installation. Wenn ich neu installieren oder die Dateien irgendwie berühren muss, bekomme ich eine neue ID. –

0

Ein Wert, den ich gesehen habe, ist die Festplatten-Volume-ID des C-Laufwerks. Es wird sich ändern, wenn Sie das Laufwerk austauschen.

0

Da ich denke, die Antworten bis jetzt und die Antworten darauf zeigen, ist die wirkliche Antwort nicht Code zu schreiben, der eine eindeutige System-ID erfordert. Dies ist sehr einfach zu tun (da es keine solche ID gibt) ist es die einzige vernünftige Art, Anwendungen zu schreiben. Alles, was von der Seriennummer des Laufwerks, MAC-Adressen usw. abhängt, wird unweigerlich unterbrochen, wenn das System geändert oder aufgerüstet wird.