Ja gut, dafür hat mein Programm eine Admin-Function für den lokalen Admin. So ganz unbetreut ist immer ein Risiko, man sollte schon eine vertrauenswürdige Person beim Kunden haben. Wenn Lizenzen nachgekauft werden sollten, baut man halt so eine Art Plugin-Funktionalität ein. Habe ich jetzt nicht realisiert weil nicht erforderlich. Kann aber kaum schwer sein.
Aber für eine andere Aufgabe habe ich eine "Lizensierung" so aufgebaut:
Es wird eine verschlüsselte Datei mit allen erlaubten User- oder Rechnernamen mitgeliefert und installiert. Die Namen müssen vorher beim Kunden erhoben werden.
Für alle Anmeldungen, auch für die in der datei enthaltenen Namen, muß eine Freischaltung erfolgen. Bei mir läuft das gleiche Programm in einer simulierten Kundenumgebung (sollte man immer haben sic!)-geht notfalls aber auch ohne. Eingabe: Username und ein beliebiger String möglichst lang. Daraus wird ein Wert(Zahl) generiert und zusammen mit dem String per Mail an den user geschickt.
User gibt Wert und String ein, Berechnung wird beim User wiederholt, bei OK verschlüsselten Dateiinhalt einlesen, intern Werte entschlüsseln, Usernamen o. Rechnernamen eintragen, Inhalte verschlüsseln, schreiben und schließen. So gibt es zu keinem Zeitpunkt eine offene unverschlüsselte Datei. Damit das nicht bei jedem Programmstart abläuft, trägt das Programm die ermittelten Werte des jeweiligen Users schön verklausuliert in die Registry ein - bei etwas Geschick unauffindbar. Damit hat man es absolut in der hand, die Anzahl der möglichen User zu bestimmen.
Gruß Delphi10
_________________
Salus populi suprema lex esto