首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Inno设置中根据多个值验证序列号

在Inno设置中根据多个值验证序列号
EN

Stack Overflow用户
提问于 2014-04-16 10:47:01
回答 1查看 994关注 0票数 3

因此,我试图在Inno安装程序中创建一个带有序列号验证的安装程序,使用如下:CustomPage for Serial Number in Inno Setup

^用于序列号页。

How can i set the serial for this serial form (Inno Setup)

检查输入的序列。这两个都是由TLama制造的!

因此,我试图让代码使用多个序列号,我尝试这样做(使用来自第二个链接的代码):

代码语言:javascript
复制
CanContinue := GetSerialNumber('-') = '62FFU-GA4N8-T8N6W-WLQJW-N6WLQ-AJKD6';
CanContinue := GetSerialNumber('-') = 'TEST1-RANDO-MFAKE-THING-YBLAB-BLA55';

但是当这样做的时候,只有第二个会起作用。

我真的不太理解Inno的设置代码,但谁能解释一下如何使这个工作吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 10:56:16

它没有像预期的那样工作,因为您用第二行代码覆盖了CanContinue值,导致只对第二个序列号起作用。

您应该将GetSerialNumber函数的返回值存储到某个局部变量,以避免多个函数调用,并在语句中使用or操作符。类似这样的内容(我还删除了额外的CanContinue变量,在这里没有多大用处):

代码语言:javascript
复制
procedure OnSerialEditChange(Sender: TObject);
var
  S: string;
begin
  { store the returned value to the local variable to avoid multliple calls }
  S := GetSerialNumber('-');
  { enable the NextButton only when the serial number matches either first }
  { OR the second serial number string }
  WizardForm.NextButton.Enabled :=
    (S = '62FFU-GA4N8-T8N6W-WLQJW-N6WLQ-AJKD6') or
    (S = 'TEST1-RANDO-MFAKE-THING-YBLAB-BLA55');
end;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23107240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档