Delphi-Quellcode:
uses ComObj;
type TSerial = TGUID;
//TSerial = packed array[0..3] of LongWord;
//TSerial = packed array[0..15] of Byte;
//TSerial = packed record
// W0: LongWord;
// i1: LongInt;
// W2: LongWord;
// W3: LongWord;
//end;
//TSerial = packed record
// D1: LongWord;
// D2: Word;
// D3: Word;
// D4: array[0..7] of Byte;
//end;
function SerialToStr(Serial: TSerial): String;
begin
Result := Copy(GUIDToString(TGUID(Serial)), 2, 36);
end;
function StrToSerial(const S: String): TSerial;
begin
try
Result := TSerial(StringToGUID('{' + S + '}'));
except
ZeroMemory(@Result, SizeOf(TSerial));
end;
end;
solange TSerial genau 16 Byte groß ist, kannst du es definieren, wie du willst
im Programm dann einfach StrToSerial aufrufen und danach dann einfach nur noch die "Integer" in der Serial irgendwie mathematisch verknüpfen.
Zitat von
MichaelLinden:
- Versuche den Key wenn schon in Form von char(65) + char(66) + char(67); (ABC) zu schreiben
statt ABC:
wurde schon gesagt
Zitat von
MichaelLinden:
- Umgehe Variablennamen wie: key, serial, seriennummer, generatedkey , usw
im Kompilat gibt es keine Variablennamen mehr ... also ist das vollkommen egal.
Klassennamen werden aber in der
RTTI gespeichert, daher sollte man eine Serialprüf-/Verwaltungsklasse anders nennen