有时候,我们做一些小软件就需要检测网络连接状态,比如想给你的软件加上类似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
|
请发表评论