INNO设置序列号验证失败
本文关键字:失败 验证 序列号 设置 INNO | 更新日期: 2023-09-27 18:29:02
我试图在Web服务的帮助下验证用户在服务器端输入的序列号,当用户输入序列号并单击下一个按钮时,应该验证序列号。。我用了下面的代码。。。。验证序列号的方法的名称是ValidateKey()。。。。我为该方法和服务传递了一个静态值123456,该值将返回false,,,,但我的安装正在进一步进行,我在安装的最后一步得到了警报消息框
function ValidateSerialNumber: Boolean;
var
WinHttpReq: Variant;
begin
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('POST', 'http://localhost:1024/WebService1/Service.asmx?op=ValidateMe', False);
WinHttpReq.Send('123456');
if WinHttpReq.Status <> 200 then
begin
Result := False;
end
else
begin
Result := True;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = SerialPage.ID then
begin
Result := ValidateSerialNumber;
end;
end;
在这里,我希望在用户单击下一个按钮时停止安装。如果服务返回false,如果服务返回true,那么他可以继续安装,我哪里错了?
您需要验证NextButtonClick
事件方法中的序列号。若要在验证失败时保留在自定义页面上,请将False
值分配给Result
变量。如果要让向导继续,请将True
分配给该事件方法的Result
。类似这样的东西:
function ValidateSerialNumber(const SerialNumber: string): Boolean;
var
WinHttpReq: Variant;
begin
Result := False;
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('POST', 'http://localhost:1024/WebService1/Service.asmx?op=ValidateMe', False);
WinHttpReq.Send(SerialNumber);
Result := WinHttpReq.Status = 200;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
SerialNumber: string;
begin
Result := True;
if CurPageID = SerialPage.ID then
begin
SerialNumber := GetSerialNumber('-');
Result := ValidateSerialNumber(SerialNumber);
end;
end;