Delphiで現在のネットワークの接続方式を即座に判断する

3026 ワード

  : 



               ,                ,        ,        ,    ,       ,            InternetGetConnectedState         API  ,        IsNetworkAlive  API  ,    InternetGetConnectedState     ,        SDK,   .Net  。

 

 

 、InternetGetConnectedState

 

 DELPHI    wininet            InternetGetConnectedState   ,                   ,                     。

 

uses wininet; //                 InternetGetConnectedState  

 

function ConnectionKind :boolean; 
var flags: dword; 
begin 
  Result := InternetGetConnectedState(@flags, 0); 
    if Result then 
      begin 
        if (flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then showmessage('  :    '); 
        if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then showmessage('  :     '); 
        if (flags and INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY then showmessage('  :  '); 
        if (flags and INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY then showmessage('MODEM    INTERNET    '); 
      end; //if
end; //function

                 : 
INTERNET_CONNECTION_MODEM:  //            
INTERNET_CONNECTION_LAN:   //           
INTERNET_CONNECTION_PROXY:  //          
INTERNET_CONNECTION_MODEM_BUSY:  //  MODEM    INTERNET    (  )

        InternetGetConnectedState              



--------------------------------------------------------------------------------


 、IsNetworkAlive

Delphi            ,         ,                                    var  。

Function IsNetworkAlive(var lpdwFlagsLib:Integer):Integer;stdcall;external'SENSAPI.DLL';

         :

Const NETWORK_ALIVE_LAN = 1;  //       
Const NETWORK_ALIVE_WAN = 2;  //       
Const NETWORK_ALIVE_AOL = 4;  //  98\95            

                    ,       

procedure ShowNetWorkState();
var
falg:integer;
Bos:boolean;
begin
  Bos:=false;
  IsNetworkAlive(falg);
  case falg of
    NETWORK_ALIVE_LAN:
      begin
        Showmessage('       。');
        Bos:=true;
      end;
    NETWORK_ALIVE_WAN:
      begin
      Showmessage('       。');
        Bos:=true;
      end;
    NETWORK_ALIVE_AOL:
      begin
        Showmessage('       。');  //  98\95          NETWORK_ALIVE_AOL
        Bos:=true;
      end;
    else Showmessage('    。');
  end;   //case
  if Bos then Showmessage('        !')
  else Showmessage('        !');
end;

 

          ,                      ,             。 



--------------------------------------------------------------------------------


                    。

 、URL.DLL  InetIsOffline  。 

Delphi           ,         ,                  
     : 
function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL'; 


                  INTERNET 


if InetIsOffline(0) then ShowMessage('       ')
else ShowMessage('       '); 


     TRUE           INTERNET。 
 : 
     IE OFFICE97      DLL    。 
InetIsOffline 
BOOL InetIsOffline( 
DWORD dwFlags, 
);