Autor |
Beitrag |
immortuus
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 13.06.07 09:39
Ich habe das Problem das ich eine HardwareID benötige. Diese muss pro PC Eindeutig sein.
Am liebsten würde ich die Microsoft HardwareID verwenden, da hab ich mich dann ein wenig schlau gemacht. Die MS Aktivierung besteht aus zwei Teilen wer es nachlesen möchte ( download.microsoft.c...3a83f0e/reportdt.pdf ) im Abschnitt INSTALLATIONS-ID steht alles.
Ich hab mich natürlich schon nach anderen Dingen umgeschaut wie z.B. die MAC Adresse oder die Seriennummer der HDD, ich hätte aber gerne die MS HardwareID.
Überall findet man die info das die MS Aktivierung aus zwei Teilen besteht nämlich aus der ProduktID (CD Key) und der HardwareID.
Aber nirgends steht wie ich die HardwareID auslesen kann.
Hat einer von euch eine Idee wie das geht?
|
|
immortuus 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 13.06.07 09:57
Was haltet ihr von der WMI Kalsse: Win32_LUID
ist die dafür geeignet?
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Sa 01.09.07 08:41
benötige auch diese ID, welche auch immer das ist.
Es gibt sicher eine ID die auf jedem PC anders ist.
Erste Frage: Wie heisst diese ID.
Zweite Frage: Wie lese ich diese aus?
Danke
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Sa 01.09.07 09:09
Das was ich bisher rausgefunden habe ist folgendes:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| implementation
{$R *.nfm}
procedure form.FormCreate(Sender: TObject); begin lbShowPCName.Caption := GetEnvironmentVariable('ComputerName');
end;
end. |
^^
Ein paar Profis von euch können sicher ein zwei Fragen davon beantworten
Bitte auch den Post darüber beachten
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 01.09.07 12:11
Also der Computername ist ganz sicher nicht eindeutig... Die MAC der Netzwerkkarte sollte theoretisch eindeutig sein, was aber auch nicht immer so ist. Die Produkt-ID vom Windows (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProductID) wäre auch eine Möglichkeit, die sollte eigentlich pro Windows-Installation identisch sein. Das ist aber NICHT der CD-Key. Die würde ich nehmen, das reicht doch eigentlich schon. Wozu brauchst du denn dann noch diese Hardware-ID.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Sa 01.09.07 12:53
Ûnd wie lese ich diese aus?
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 01.09.07 13:01
mexx2k hat folgendes geschrieben: | Ûnd wie lese ich diese aus? |
Timosch hat folgendes geschrieben: |
Die Produkt-ID vom Windows (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProductID) |
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Sa 01.09.07 13:25
achso, wird dann also nicht in irgendeiner umgebungsvariable gespeichert?
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 01.09.07 14:18
Wie man der Ausgabe des SET-Befehls (alternativ Systemsteuerung->System->Erweitert->Umgebungsvariablen, aber set ist schneller...) entnehmen kann, nein.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Sa 01.09.07 15:06
Ich würd sagen für die DAU´s und newbies unter uns wäre es nett wenn einer von euch Profis ein;zwei ZeilenDelphi-Code Poste kann, wie man diese umgebungsvariable in eine normale Stringvariable bekommt 
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 01.09.07 15:20
mexx2k hat folgendes geschrieben: | Ich würd sagen für die DAU´s und newbies unter uns wäre es nett wenn einer von euch Profis ein;zwei ZeilenDelphi-Code Poste kann, wie man diese umgebungsvariable in eine normale Stringvariable bekommt  |
Wie ich schon sagte: Es ist keine Umgebungsvariable. Die Product-ID steht in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProductID. Und wie man Registry-Einträge ausliest, kann man der Delphi-Hilfe entnehmen. (TRegistry...)
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Mo 03.09.07 10:09
Also nochmal für alle, die eine eindeutige ID bzw. einen eindeutigen Code eines Computers benötigen.
Ich denke einer der eindeutigsten Sachen ist die FestplattenID, welche sich natürlich nur ändert, wenn man eine andere Festplatte benutzt.
So kann man diese Auslesen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.FormCreate(Sender: TObject); var pRootPathName: Array[0..MAX_PATH] of Char; pVolumeNameBuffer: Array[0..MAX_PATH] of Char; iVolumeSerialNumber: Cardinal;
iMaximumComponentLength: DWORD; iFileSystemFlags: DWORD;
cc : Cardinal;
begin
cc := 0; pRootPathName := 'X:\'; GetVolumeInformation( pRootPathName,pVolumeNameBuffer,Sizeof(pVolumeNameBuffer)-1,@iVolumeSerialNumber,iMaximumComponentLength,iFileSystemFlags,nil,0 ); cc := iVolumeSerialNumber; ShowMessage(Format('%.8x', [cc])); end; |
Bei der Bestimmung, welche Festplatte hergenommen werden soll, hab ich noch einen kleinen Tipp:
Ich persönlich würde auslesen, auf welcher Festplatte das Betriebssystem(Windows) installiert ist. Und so wird das gemacht:
Delphi-Quelltext 1:
| sString := GetEnvironmentVariable('systemdrive'); |
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 03.09.07 10:44
Moin!
mexx2k hat folgendes geschrieben: | Also nochmal für alle, die eine eindeutige ID bzw. einen eindeutigen Code eines Computers benötigen.
Ich denke einer der eindeutigsten Sachen ist die FestplattenID |
Wie Timosch bereits sagte, lies die ProductID aus der Registry und bilde von dem kompletten Binärblock z.B. einen MD5-Hash (kannst auch vorer noch die SystemDrive-Serial und den Hostnamen drauftun, wenn du magst). DAS würde ich dann als halbwegs brauchbaren Hardware-Hash bezeichnen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Mo 03.09.07 10:48
naja, nur wenn du formatierst und ein anderes betriebssystem nimmst, bzw. nur eine andere lizenz, dann ändert sich ja auch diese Produktid.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 03.09.07 10:51
Timosch hat folgendes geschrieben: | Die Produkt-ID vom Windows (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProductID) wäre auch eine Möglichkeit, die sollte eigentlich pro Windows-Installation identisch sein. Das ist aber NICHT der CD-Key. |
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 03.09.07 10:52
mexx2k hat folgendes geschrieben: | Ich denke einer der eindeutigsten Sachen ist die FestplattenID, welche sich natürlich nur ändert, wenn man eine andere Festplatte benutzt. |
Eindeutig vielleicht, aber nicht sehr beständig. Einmal formatiert und du hast eine neue.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 03.09.07 13:42
@Luckie: Nicht nur das: Da ich regelmäßig meine Laufwerke clone und inzwischen auch weiß, wie man eine Systempartition in einem NEUEN Rechner zum Laufen bekommt, könnte ich das Programm problemlos auf einen anderen Rechner ziehen (sofern die HW halbwegs kompatibel ist.
Ferner ist zu Beachten, dass Festplatten-ID <> VolumeID ist. Du liest die VolumeID aus, die mit jedem halbwegs brauchbaren Hexeditor in <1 Minute geändert ist. Die Festplatten-ID ist die Hardware-Seriennummer (IMHO) und da sieht es schon komplizierter aus.
Hier im DF gibt es GENUG Diskussionen, zum Thema Hardware-IDs, wo nahezu ALLE zur Aussage bringen, dass eine HW-ID nicht wirklich eindeutig ist ODER zu enormen Nachteilen beim Kunde führt, so dass es den Aufwand nicht lohnt. Warum sind hier dennoch IMMER WIEDER Leute der Meinung, Zeit auf eine Funktion verschwenden zu müssen, die eh nichts bringt, außer Nachteile, anstatt diese Zeit in ordentliche Funktionen zu investieren, damit man den Anreiz für eine legale Version erhöht?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 03.09.07 15:41
@BenBE: 
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
mexx2k
      
Beiträge: 60
|
Verfasst: Mo 03.09.07 16:29
Naja Zeit verschwenden ist vielleicht nicht der richtige Ausdruck für meine Bemühungen.
Ich beschäftige mich erst seit ein paar Tagen mit dem Thema "eindeutige ID" und wusste halt z.b. nicht, dass sich diese ID beim formatieren ändert. Ausserdem, glaube ich nicht, dass Hausfrauencomputerbesitzer sich mit Hexeditoren etc. auskennen
Aber darum gehts ja nicht.
Bin halt noch nicht allzu frisch auf diesem Gebiet.
|
|
Delphiturbo
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 01.11.07 02:55
|
|