InnoSetup - 如何要求用户键入许可证密钥或产品密钥并将该代码与编译常量匹配?

5 windows security installer inno-setup windows-8

我必须分发使用innoSetup制作的setup.exe,其中每个用户和每台PC必须获得许可.

我想给他们一个许可证密钥/产品密钥,如Windows 8.1,他们必须在InnoSetup中输入.并将其与嵌入式常量或互联网相匹配.验证完成后,setup.exe将完成,否则它将不会安装.

是否有任何样品与innosetup,我怎么能这样做?

TLa*_*ama 7

要创建用于输入序列号的页面,您可以启用该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;
Run Code Online (Sandbox Code Playgroud)

INVALID系列:
在此输入图像描述

VALID系列:
在此输入图像描述

我使用了预处理器定义的常量,因为它允许您简化构建过程.然后,您可以从脚本外部定义此类常量,extended command line compiler并使用例如批处理脚本来构建具有已定义序列号的设置.

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

iscc "/dSerialNumber=654321" "C:\Script.iss"
Run Code Online (Sandbox Code Playgroud)

当然,实际上您需要注意输出设置文件及其序列号的管理,但您选择的系统就在您身上.Command line compiler允许您指定输出路径和一个足以构建此类系统的文件名.