问:什么函数(方法)可以检查是否在线,如果不在线不会引起自动拨号。(100分)

  • 主题发起人 主题发起人 HN-Huang
  • 开始时间 开始时间
H

HN-Huang

Unregistered / Unconfirmed
GUEST, unregistred user!
注:我不希望 将电脑人为设为任何情况都不拨号。(这个答案不要)
 
用RAS API,以前的贴子有,找找看
 
我用的方法是:
function TForm1.CheckOffline: boolean;
var
ConnectState: DWORD;
StateSize: DWORD;
begin
ConnectState:= 0;
StateSize:= SizeOf(ConnectState);
result:= false;
if InternetQueryOption(nil, INTERNET_OPTION_CONNECTED_STATE, @ConnectState, StateSize) then
if (ConnectState and INTERNET_STATE_DISCONNECTED) <> 2 then result:= true;
end;

但是不在线,会引起拨号。
 
to tasam
关键词是什么?谢谢
 
在注册表的HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/RemoteAcces分支下,
当未连通因特网时,Remote Connection的键值为00 00 00 00,当连通时,其键值为01 00 00 00,
通过这一键值就可以作出判断。
 
看你有什么了,使用webbrowser吗
 
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/RemoteAcces这个只在98下有效
RasGetConnectStatus:function(HRASConn: THRASConn;lpRasConnStatus : PRASConnStatus): DWORD; stdcall;
RasEnumConnections : function(pRasConn : PRASConn;pCB : PDWord;pcConnections : PDWord) : DWORD; stdcall;
RasGetProjectionInfo:function(hrasconn:tHRASCONN ;
rasprojection:dword;
lpprojection:PTRASPPPIP;
lpcb:pdword ) : DWORD; stdcall;
这三个函数可以做到,不在线也不会引起拨号
 
我的意思是说
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/RemoteAcces这个键值只能
在WIN98下指示出是否在线,而在2000中无法指示出
要想检测是否在线,要用RAS函数,就用我写的那三个就可以实现了,如要源码,给我
来信,我发给你
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部