請問如何偵測網路線已拔除或插上 |
尚未結案
|
linpoyu
一般會員 發表:3 回覆:3 積分:1 註冊:2004-10-11 發送簡訊給我 |
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
|
linpoyu
一般會員 發表:3 回覆:3 積分:1 註冊:2004-10-11 發送簡訊給我 |
引言: 參考下列資料 http://delphi.ktop.com.tw/topic.php?topic_id=27369 http://delphi.ktop.com.tw/topic.php?topic_id=22413謝謝這位大大,不過我要的功能是要偵測網路線是否被拔除或插上,並不是Internet連線狀態... |
determinant39
一般會員 發表:2 回覆:2 積分:0 註冊:2004-11-02 發送簡訊給我 |
linpoyu,
不知道這個對你有沒有幫助... ============================================
檢測電腦是否聯網比較簡單的做法可以通過一個 Win32 Internet(WinInet) 函數 InternetCheckConnection來實現;
這個函數的功能是檢查是否能夠建立 Internet 連接。
它的實現是在 %SystemRoot%\System32\wininet.dll 中,Delphi 調用聲明在 WinInet.pas 中,
其 API 聲明如下: BOOL InternetCheckConnection(
IN LPCSTR lpszUrl,
IN DWORD dwFlags,
IN DWORD dwReserved
); 參數的意義是: lpszUrl: 需要測試能否建立連接的 URL 位址,可以?空;
dwFlags: 目前只能是 FLAG_ICC_FORCE_CONNECTION(這個常量 Delphi 中沒有聲明,其值? $00000001);
dwReserved: 目前只能? 0。 調用的說明: 如果 lpszUrl 是非空的,Windows 從中解析出 Host 名然後 Ping 這個指定的 Host。
如果 lpszUrl 是空的,並且 WinInet 內部伺服器的 database 中有一個關於最近的 Server 的紀錄,Windows 就從這條紀錄中解析出 Host 名然後 Ping 它。 如果能夠成功的連接返回 True,否則返回 False; 以下是一個判斷當前電腦是否聯網的例子: procedure TForm1.Button1Click(Sender: TObject);
begin
if InternetCheckConnection('http://www.yahoo.com/', 1, 0) then
edit1.text:= 'Connected'
else
edit1.text:= 'Disconnected';
end; 通過上述的方法只能檢測出當前電腦是否物理聯網,即網線是否接好,網卡是否能順利工作,不能確定是否能夠實現獲得 Internet 服務,即是否能和 ISP 進行 Internet 連接。
=================================================== 以上是我從網址擷取的資料,詳細請參考這個網址
http://delphi.ktop.com.tw/topic.php?topic_id=22413 生命就該浪費在美好的事物上~~~ 發表人 - determinant39 於 2004/11/10 14:28:42
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |