有時候,我們做一些小軟件就需要檢測網絡連接狀態,比如想給你的軟件加上類似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