如何使用Inno Setup检查Internet连接

时间:2016-09-02 11:24:36

标签: inno-setup internet-connection

我正在学习Inno Setup来制作一个简单的安装程序。我需要在安装过程中从网站下载文件,因此检查是否存在Internet连接非常重要。如何在安装过程中检查或采取一些警报来连接Internet?

谢谢!

1 个答案:

答案 0 :(得分:5)

最好的检查是尝试实际下载文件。

“互联网”并不是一件可以连接的真实内容。如果你连接到“互联网”,那么很难测试。您实际上不需要连接到“Internet”,您需要连接到您的服务器。所以测试一下。

另见

Inno Setup中的等效实现如下:

function InitializeSetup(): Boolean;
var
  WinHttpReq: Variant;
  Connected: Boolean;
begin
  Connected := False;
  repeat
    Log('Checking connection to the server');
    try
      WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
      { Use your real server host name }
      WinHttpReq.Open('GET', 'https://www.example.com/', False);
      WinHttpReq.Send('');
      Log('Connected to the server; status: ' + IntToStr(WinHttpReq.Status) + ' ' +
          WinHttpReq.StatusText);
      Connected := True;
    except
      Log('Error connecting to the server: ' + GetExceptionMessage);
      if WizardSilent then
      begin
        Log('Connection to the server is not available, aborting silent installation');
        Result := False;
        Exit;
      end
        else
      if MsgBox('Cannot reach server. Please check your Internet connection.',
                mbError, MB_RETRYCANCEL) = IDRETRY then
      begin
        Log('Retrying');
      end
        else
      begin
        Log('Aborting');
        Result := False;
        Exit;
      end;
    end;
  until Connected;

  Result := True;
end;