inno-setup – 如何使用Inno Setup检查Internet连接

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

谢谢!

解决方法

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

“互联网”几乎不是你可以连接的真实东西.如果你连接到“互联网”,那么很难测试.您实际上不需要连接到“Internet”,您需要连接到您的服务器.所以测试一下.

也可以看看

> How to check if internet connection is present in java?
> What is the best way to check for Internet connectivity using .NET?

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;

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...