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

时间:2014-09-05 10:03:26

标签: windows security windows-8 installer inno-setup

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

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

对于innosetup是否有任何样本,我该怎么办呢?

1 个答案:

答案 0 :(得分:8)

要创建输入序列号的页面,您可以启用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;

INVALID序列号:
enter image description here

VALID序列号:
enter image description here

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

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

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

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