Ich möchte hier mal meine Version der Abfrage des Trial-Modus zur Diskussion stellen (nicht das Registrieren):
Beim Start prüfe ich, ob die ini.xml-Datei im Projektverzeichnis und eine zweite, versteckte, Datei vorhanden ist. Sind beide nicht vorhanden, ist es der erste Start.
Der erste Start:
Es wird die ini.xml-Datei erstellt, darin verschlüsselt gespeichert, daß das Programm nicht freigeschalten ist und die Start-Zeit als CTime. Gleichzeitig wird an einer anderen Stelle eine versteckte Datei erzeugt, in der die Zeit als CTime steht.
Weitere Starts:
Die ini.xml wird gelesen und geprüft, ob freigeschaltet wurde. Wenn nicht, werden
beide Dateien gelesen, der CTime-Wert verglichen. Stimmt er überein, wird geprüft, ob der Trial-Zeitraum überschritten wurde, in diesem Fall der Programm-Start nur nach Registrierung ermöglicht. Ist der Zeitraum nicht überschritten, wird das Programm gestartet. Stimmt der CTime-Wert nicht überein, wurde manipuliert und der Programmstart wird verhindert.
Fehlt die ini.xml und die andere Datei ist vorhanden, hat jemand die ini.xml gelöscht (in der Hoffnung vielleicht, daß dann alles von vorn losgeht). Dann wird ebenfalls nur nach Registrierung gestartet.
Wenn der User dann nicht durch Zufall die versteckte Datei findet und sie dann auch noch mit dem Programm in Zusammenhang bringt, kann er nichts machen. In der Registry findet er jedenfalls keinen Hinweis. Die ini.xml ist aber sehr leicht zu finden und zu manipulieren, deshalb dieser Schutzmechanismus.
Vielleicht etwas umständlich, aber ich denke, so ist es relativ sicher. Oder hat jemand 'ne einfachere Idee?
langer