Thema: Delphi Hardwareinfos

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#13

Re: Hardwareinfos

  Alt 12. Mär 2007, 15:47
Zitat von torud:
Hm, mit der neuen Version erhalte ich folgende Fehlermeldung:

Kein Argument für Format '%d'
jupp grad gemrkt ... hatte ID[4] ausversehn gelöscht

Zum Verbinden gibt's viele Möglichkeiten.
Einfach irgendwie Mathematisch verrechnen/kombinieren

hier z.B. ganz einfach per XOR:
Delphi-Quellcode:
Function GetCode(Name: String): String;
  Var ID: TCPUID;
    i: Integer;

  Begin
    If IsCPUID_Available Then Begin
      ID := GetCPUID;
      Result := Format('%d%d%d%d', [ID[1], (ID[2] shr 16) and $FF, ID[3], ID[4]]);
    End Else Result := '45187921234890234790';
    While Length(Name) < 20 do Name := Name + Name;
    While Length(Result) < 20 do Result := Result + Result;
    For i := 1 to 20 do Result[i] := Char(Ord(Result[i]) xor Ord(Name[i]));
    SetLength(Result, 20);
  End;
Möglich wären auch Hashverfahren und Ähnliches.
z.B.:
Delphi-Quellcode:
If IsCPUID_Available Then Begin
  ID := GetCPUID;
  Result := Format('%d%d%d%d', [ID[1], (ID[2] shr 16) and $FF, ID[3], ID[4]]);
End Else Result := '45187921234890234790';
MD5Init(Context);
MD5Update(Context, PChar(Result), Length(Result));
MD5Update(Context, PChar(Name), Length(Name));
MD5Final(Context);
Result := MD5ToString(Context);
(die MD5-Funktionen sind aus meiner eigenen Bibliothek und die Aufrufe müßten demnach eventuell an jene angepaßt werden, welche ihr verwendet)
$2B or not $2B
  Mit Zitat antworten Zitat