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;
不知道是不是我的调用方式有问题,总是显示无连接。



[本日志由 admin 于 2014-01-01 10:04 PM 更新]
上一篇: delphi 打开记事本并写入内容
下一篇: Delphi下DBGrid的自绘
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭