如何知道拨号网络是否连接?(50分)

  • 主题发起人 主题发起人 facat
  • 开始时间 开始时间
F

facat

Unregistered / Unconfirmed
GUEST, unregistred user!
如何知道拨号网络是否连接?

 
You can use the TCP component to retrieve the Local IP
address. If it is "0.0.0.0" then there is no connection.

Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
if TCP1.LocalIp = '0.0.0.0' then
ShowMessage('Your not connected!');
end;

 
TCP到底是哪个控件?
 
用wininet函数,可以搜索以前的帖子。
 
土办法:
用tcp连接 www.21cn.com 的 80端口
不通的话,用tcp连接 www.163.com 的 80端口
不通的话,用tcp连接 www.sina.com.cn 的 80端口
上面一个都不通的话,说明没有连在internet
 
洋办法
用 RasEnumConnections 罗列活动连接
可惜这个api在d5没有转化,你可以从c++ builder 那里把这个函数自己转过来
当然如果你使用bcb(c++builder)九没有这个烦恼了
另外也不知道d6有没有提供这个api
 
wininet函数可以判断机器物理设置是否能用,及是否能获取ISP服务。
 
USES
WinInet;
..
..

function InternetConnected: Boolean;
CONST
// local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to the Internet.
INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the Internet.
INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-Internet connection.
INTERNET_CONNECTION_MODEM_BUSY = 8;

VAR
dwConnectionTypes : DWORD;
BEGIN
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes,0);
END;



 
多人接受答案了。
 
后退
顶部