Delphi检测网络连接状态


       有时候,我们做一些小软件就需要检测网络连接状态,比如想给你的软件加上类似QQ那样的系统消息,可是像我这样的穷人肯定是买不起服务器了,那我们只好另想办法,可以读取网页然后用浏览器显示,这个时候就需要判断网络状态。
    我目前采用的判断方式有两种:

1.采用WinInet方式:

uses WinInet;

procedure TForm1.Button1Click(Sender: TObject);
var
  Flags: DWORD;
begin
  if InternetGetConnectedState(@Flags, 0) then
  begin
    if (Flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then Label1.Caption := '在线:拨号上网';
    if (Flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then Label1.Caption := '在线:局域网上网';
    if (Flags and INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY then Label1.Caption := '在线:代理上网';
    if (Flags and INTERNET_CONNECTION_MODEM_BUSY) = INTERNET_CONNECTION_MODEM_BUSY then Label1.Caption := 'Modem被其他网络使用';
  end;
end;

2.采用URL.dll文件提供的InetIsOffline函数:

首先声明函数:
function InetIsOffline(Flag: integer): Boolean; stdcall; external 'URL.dll';
然后调用
procedure TForm1.Button2Click(Sender: TObject);
begin
  if InetIsOffline(1) then
    Label1.Caption := '网络在线!'
  else
    Label1.Caption := '网络不在线!';
end;
不知道是不是我的调用方式有问题,总是显示无连接。

http://www.lsworks.net/article/7.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM