Hallo Philipp,
es macht keinen Sinn, dass du im Ereignis OnCreate() der Form das Startdatum überschreibst. Das Startdatum sollte einzig die Installationsroutine festlegen. Dein Programm sollte das gespeicherte Datum nur mit dem Tagesdatum vergleichen. Gibt es kein Startdatum, dann wurde nicht ordentlich installiert. Damit niemand durch tägliche Vorgabe eines passenden Datums deinen Schutz unterläuft, solltest du das Datum auch nicht im Klartext schreiben:
Delphi-Quellcode:
uses
DateUtils;
const
Section = 'Freischaltung';
Key = 'Testbeginn';
LuPhiCode = $9A53;
TrialDays = 30;
var
StartDay: Word;
begin
StartDay := ini.ReadInteger(Section, Key, 0);
if (StartDay = 0) or (DaysBetween(date, StartDay xor LuPhiCode) > TrialDays) then
// Programm beenden
else
// Weiter
;
end;
Ein richtiger Schutz ist das aber nicht - mehr eine Spielerei. Sobald du ein geniales Programm geschrieben hast, brauchst du einen richtigen Schutz. Ist das Programm nicht so genial, dann würde ich diesen Schutz nicht einbauen, sonst mag es niemand benutzen.
Grüße vom marabu