有什么好的方法?网上的方法,我试了好多!大多都不行!
这种方法不太好,因为每次要监测人家网站,某一天这个网站坏了,或者关门了!那就永远检测不通了!
function IsInternet: Boolean;
begin
if InternetCheckConnection('http://www.163.com/', 1, 0) then
Result := True
else
Result := False;
end;
这种方法不太好,因为每次要监测人家网站,某一天这个网站坏了,或者关门了!那就永远检测不通了!
function IsInternet: Boolean;
begin
if InternetCheckConnection('http://www.163.com/', 1, 0) then
Result := True
else
Result := False;
end;
功 能: 检测计算机是否上网
参 数: 无
返回值: 成功: True 失败: False;
备 注: uses Wininet
版 本: 1.0 2003/08/11
=================================================================}
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;
常量定义就不需要了,在 WinInet 中有
winexec('PING www.csdn.net>aaa.txt',sw_hide);
然后再查一下aaa.txt中的内容是没有
Request timed out.
或是UNKNOW HOST的字样
如果有的话,上不去网就是了
如果没有的话,就是能上网了
//如怕出现状况,可以多几个就是了
if (InternetCheckConnection('http://www.yahoo.com/', 1, 0)or //就这一句,可以适量
///少一些
(InternetCheckConnection('http://www.sohu.com/', 1, 0))or
InternetCheckConnection('http://www.microsoft.com/', 1, 0)or
InternetCheckConnection('http://www.163.com/', 1, 0))or
InternetCheckConnection('http://www.csdn.com/', 1, 0)or
InternetCheckConnection('http://www.163.net/', 1, 0)or
InternetCheckConnection('http://www.playicq.com/', 1, 0) then
begin
Showmessage('已上网!!');
end else
begin
Showmessage('我靠,连网都无法上!!!')
end;