检测internet连接?(50分)

  • 主题发起人 主题发起人 lanlyli
  • 开始时间 开始时间
L

lanlyli

Unregistered / Unconfirmed
GUEST, unregistred user!
wininet.dll中有InternetAttemptConnect函数,但是我试了不行,不知道有什么问题?

if InternetAttemptConnect(0) = ERROR_SUCCESS then
result := True
else
result := false;

不管是否能够上网,都返回相同的结果
 
这个问题挺复杂的,偶已经试了n种办法,也白搭。。。尤其是内部网或使用了路由。。。
 
下面这个函数我一直用,挺好的.

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;
 
to iseek

你的方法我试过,函数总是返回为TRUE.将网线拔掉也一样。我的是win2000系统。

InternetAttemptConnect(0)一样
 
function TCenterForm.Ping163: boolean; //判断网络是否连通 需uses wininet
var
IP:pchar;
begin
IP:='http://www.163.com';
if InternetCheckConnection(IP, 1, 0) then
result:=true else result:=False;
end;
 
谢谢batconv,
InternetCheckConnection原来我试过,采用PING的方式,如果没有连接的话很慢。但是看来只有这个方法了
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
后退
顶部