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,那么他可以继续安装,我哪里错了?

INNO设置序列号验证失败

您需要验证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;