如何编程判断是否在internet上?(50分)

  • 主题发起人 主题发起人 小唐
  • 开始时间 开始时间

小唐

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,请指教!
 
这个问题我以前回答过,以后提问先搜贴子有好处:)
方法如下:
if InternetCheckConnection('http://www.sohu.com',1,0) then
ShowMessage('ON line')
else
ShowMessage('OFF line');

在uses 中加上wininet。
 
请问:
if InternetCheckConnection('http://www.sohu.com',1,0) then
这一句中第二个和第三个参数代表什么意思?
 
第二个参数为1时,电脑提示说内存出错了。
Error

Project Project1.exe raised exception class
EAccessViolation with message 'Access violation at
address BFF7BA62 in module 'KERNEL32.DLL'. Read of
address FFFFFFFF'. Process stopped. Use Step or Run
to continue.

OK


Error

Project Project1.exe raised exception class
EAccessViolation with message 'Access violation at
address 76451F62 in module 'WININET.DLL'. Read of
address FFFFFFFF'. Process stopped. Use Step or Run
to continue.

OK
若改为0,则没有上面的错误提示,但
无法检测是否在网上,不管怎样,电脑总提示说不在网上。
也就是说,internetcheckconnection函数的返回总为假。
还请指教!
 
第二个为 1 ,是目前的唯一参数值,表示用 ping 的方法。
第三个为保留字,必须为0.
 
to jsxjd:
 不行呀,用internetcheckconnection无论上不上网,结果都是说不在网上;
  而用这个:
function Tform1.GetOnlineStatus : Boolean;
var
ConTypes : Integer;
begin
// ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN ;
ConTypes := INTERNET_CONNECTION_MODEM;
if (InternetGetConnectedState(@ConTypes, 0) = False) then
Result := False
else
Result := True;
end;
不论上不上网,结果都是说在网上。
真是气死我了。还有其它的好的方法吗?
 
这个应该是可以的,我试过了:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if InternetCheckConnection('http://www.china.com',1,0) then
showmessage('ok')
else
showmessage('no')
end;
 
to jsxjd:
非常感谢你的帮助,不过你的程序:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if InternetCheckConnection('http://www.china.com',1,0) then
showmessage('ok')
else
showmessage('no')
end;
在我的电脑上运行会出现下面的错误提示:
Error

Project Project1.exe raised exception class
EAccessViolation with message 'Access violation at
address BFF7BA62 in module 'KERNEL32.DLL'. Read of
address FFFFFFFF'. Process stopped. Use Step or Run
to continue.

OK


Error

Project Project1.exe raised exception class
EAccessViolation with message 'Access violation at
address 76451F62 in module 'WININET.DLL'. Read of
address FFFFFFFF'. Process stopped. Use Step or Run
to continue.

OK

实在没有办法,我又用DFW中的全文检索进行搜索,结果想不到在
http://www.delphibbs.com/delphibbs/dispq.asp?lid=938978
中找到了答案。呵,真是天意弄人呀!自己栽在了自己的手里!

 
接受答案了。
 
后退
顶部