求助:
    我用InternetGetConnectedState(,)
和getsystemmetrics(SM_NETWORK)AND $0001 =$0001 不能时实得到网络连接状态;
由那位大虾给以指点,谢谢了。
(就是不能象网络连接图表指示的一样来显示网络连接状态)只要初始未在连接状态,断开后还是未连接状态~~~~

解决方案 »

  1.   


    function IsOnline(const Url: String):Boolean;
    var
      ConnectState,StateSize:DWORD;
    begin
      Result:=False;
      if not InternetCheckConnection(pchar(Url),1,0) then
        Exit;
      ConnectState:=0;
      StateSize:=SizeOf(ConnectState);
      if InternetQueryOption(nil,INTERNET_OPTION_CONNECTED_STATE,@ConnectState,StateSize) then
        if (ConnectState and INTERNET_STATE_DISCONNECTED)<>2 then
          Result:=True;
    end;你找一个比较稳定的url去验证,比如说www.163.com等
      

  2.   

    我自己用了个如下方法也可判断连接状态:
    procedure TForm1.Button3Click(Sender: TObject);
    var
     wsdata:TWSAData ;
     name,ss:string ;
     Host:pHostent ;
     sIP:Pchar ;
    begin
     WSAStartup ($0101, wsdata);
     gethostname(Pchar(Name),Sizeof(Name));
     Host:= GetHostByName(Pchar(Name));
     sIP:=Host^.h_addr_list(in_addr   inet_ntoa
     ss:=Format('%d.%d.%d.%d',[Byte(sIp[0]),Byte(sIp[1]),Byte(sIp[2]),Byte(sIp[3])])  ;
     Edit3.text:=ss ;
     WSACleanUP ;
    end;
    Thankx ,naughtyboy(一切都是为了明天) 结贴了