InnoSetup – 如何让用户键入许可证密钥或产品密钥,并将其与编译的常量相匹配?

我必须分发一个setup.exe使用innoSetup,其中每个用户和每个PC必须获得许可。

我想给他们一个像Windows 8.1的许可证密钥/产品密钥,他们必须inputInnoSetup。 并与embedded的常量匹配或通过互联网直播。 一旦validation完成,那么setup.exe将完成,否则不会安装。

有没有这样的innosetup样本,我该怎么做,请吗?

要创建输入序列号的页面,您可以启用UserInfoPage指令并为CheckSerial事件编写处理程序:

 #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; 

无效序列号:
在这里输入图像说明

有效的序列号:
在这里输入图像说明

我使用了一个预处理器定义的常量,因为这样可以简化构建过程。 然后,您可以从脚本外部定义这样的常量,使用extended command line compiler ,例如使用批处理脚本来构建具有定义的序列号的设置。

您只需从上面的脚本中删除第一行(硬编码) ,然后运行命令行(对于序列号654321 ):

 iscc "/dSerialNumber=654321" "C:\Script.iss" 

当然,实际上你需要关心输出设置文件的管理和他们的序列号,但你选择的系统在你身上。 Command line compiler允许你指定输出路径和一个足够建立这样的系统的文件名。