我在Delphi中用下面检测本机的网络连接...编译后,网络正常能打开网页时能提示“成功连通”,手动停用本地连接或者拔掉网线时也能提示“没有连通”;
但如果掉线,比如挂BT掉线后打不开网页时仍是提示“成功连通”!
请问问题是出在哪里呢 ?如何修改才能实现掉线后马上提示“没有连通”
谢谢
procedure TFrmPing.Ping;
var
  IPOpt: TIPOptionInformation;
  pReqData, pRevData: PChar;
  pIPE: PIcmpEchoReply;
  FIPAddress: DWORD;
  FSize: DWORD;
  MyString: string;
  FTimeOut: DWORD;
  BufferSize: DWORD;
begin
  if Trim(EdIP.Text) <> '' then
  begin
    FIPAddress := inet_addr(Pchar(EdIP.Text));
    FSize := 40;
    BufferSize := SizeOf(TICMPEchoReply) + FSize;
    GetMem(pRevData, FSize);
    GetMem(pIPE, BufferSize);
    FillChar(pIPE^, SizeOf(pIPE^), 0);
    pIPE^.Data := pRevData;
    MyString := 'I''m Terry,Pinging your Computer now!!';
    pReqData := PChar(MyString);
    FillChar(IPOpt, Sizeof(IPOpt), 0);
    IPOpt.TTL := 64;
    FTimeOut := 400;
    IcmpSendEcho(hICMP, FIPAddress, pReqData, Length(MyString), @IPOpt, pIPE, BufferSize, FTimeOut);
    if pIPE^.Status = 0 then
    begin
      LblSStatus.Caption := '成功连通';
      LblSAddr.caption := inttostr(pIPE^.Address);
      LblSDataSize.Caption := inttostr(pIPE^.DataSize);
      LblSRTT.Caption := inttostr(pIPE^.RTT);
      if pIPE^.RTT < 1 then
        LblSRTT.Caption := '小于1毫秒';
    end
    else
    begin
      LblSStatus.Caption := '没有连通';
      LblSAddr.caption := '';
      LblSDataSize.Caption := '';
      LblSRTT.Caption := '';
    end;
    FreeMem(pRevData);
    FreeMem(pIPE, BufferSize);
  end;
end;
procedure TFrmPing.TimerPingTimer(Sender: TObject);
begin
  StartPing;
end;