在运行时检查Internet连接

时间:2015-06-09 10:55:50

标签: delphi

在哪个场合或如何在程序运行时检查互联网连接?场景:程序正在运行,突然互联网连接关闭,并打开一个对话框“无法访问互联网,将连接字符串更改为中央数据库”。我试过这个功能,但是我不确定我应该放在哪个事件中以便它一直有效。

function TFK_Lib.CheckInternet: boolean;
begin
  ConnectedState := INTERNET_CONNECTION_MODEM;
  Result := InternetGetConnectedState(@ConnectedState, 0);
end;

2 个答案:

答案 0 :(得分:0)

您可以使用计时器检查(在某个时间段)连接并显示对话框(作为模态,因此您无法执行任何其他操作)。

答案 1 :(得分:-1)

您可以进行实际测试并ping google.com。 如果我理解你的问题,我认为这不是一个糟糕的选择。 代码示例:

class function TAuthUserFunctions.CheckInternet: boolean;
    var
     idtcp : TIdTCPClient;
    begin
      try
        idtcp := TIdTCPClient.Create(Nil);
        try
          idtcp.ReadTimeout := 2000;
          idtcp.ConnectTimeout := 2000;
          idtcp.Port := 80;
          idtcp.Host := 'google.com';
          idtcp.Connect;
          idtcp.Disconnect;
          Result := True;
        finally
          idtcp.Free;
        end;
      except
        Result := False;
      end;
    end;