L'une des solutions au quelles je pense c'est de vérifier a l'exécution si l'utilisateur l'a acheter.
Un exemple banale serait par exemple un fichier verification.txt avec une clé d'activation , a l'exécution le programme peut vérifier sur un serveur si la clé est encore valide.
Bien sur ça c'est la version toute bête il faudrait que le fichier vérification soit crypté et bien cache, ou a la place misé sur une clé de registre ,mais c'est a vous de choisir la meilleur solution
Qui cour de l'avant est sur de vivre plus longtemps, car les mains ne peuvent atteindre ce que les yeux ne voient pas.
To create a page for entering serial numbers you can enable the UserInfoPage directive and write a handler for the CheckSerial event:
#define SerialNumber "123456"
[Setup]
AppName=My Program
AppVersion=1.5
UserInfoPage=yes
DefaultDirName={pf}\My Program
[Code]
function CheckSerial(Serial: String): Boolean;
begin
Result := Serial = '{#SerialNumber}';
end;
INVALID Serial:
VALID Serial:
I have used a preprocessor defined constant because that allows you to simplify the build process. You can then define such constant from outside the script, with extended command line compiler and make e.g. a batch script that will build the setup with a defined serial number.
You would just remove the first (hardcoded) line from the above script and run a command line like this (for serial number 654321):
iscc "/dSerialNumber=654321" "C:\Script.iss"
Of course in real you will need to take care about administration of the output setup files and their serial numbers but the system that you choose is upon you. Command line compiler allows you to specify the output path and a file name which is more than enough to build such system.
Il vaut mieux boire du vin d'ici que de l'eau de là
comment protéger son programme par mot de passe ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.