说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

谁知道怎样检测拨号连接状态?谢谢各位大哥。

编辑:说三道四文库 发布时间:2017-09-22 03:41
HTML文档下载 WORD文档下载 PDF文档下载
谁知道怎样检测拨号连接状态?谢谢各位大哥。
wy2000@sina.com
以前有相关的帖子,查找一下好了。
DWORD dwConnectState;
CString strConnectState;
BOOL bOK = InternetGetConnectedState( &dwConnectState, 0);
if ( bOK )
{
  if ( dwConnectState & INTERNET_CONNECTION_LAN )
    strConnectState = "Local system uses a local area network to connect to the Internet. ";
  if ( dwConnectState & INTERNET_CONNECTION_MODEM )
    strConnectState = "Local system uses a modem to connect to the Internet. ";
  if ( dwConnectState & INTERNET_CONNECTION_MODEM_BUSY )
    strConnectState = "No longer used. ";
  if ( dwConnectState = INTERNET_CONNECTION_PROXY )
    strConnectState = "Local system uses a proxy server to connect to the Internet. ";
}
测试连接是否有效,可以用:InternetCheckConnection

检测计算机是否联网比较简单的做法可以通过一个 Win32 Internet(WinInet) 函数 InternetCheckConnection来实现;
这个函数的功能是检查是否能够建立 Internet 连接。
它的实现是在 %SystemRoot%\System32\wininet.dll 中,Delphi 调用声明在 WinInet.pas 中,
其 API 声明如下:

BOOL InternetCheckConnection(
    IN LPCSTR lpszUrl,
    IN DWORD dwFlags,
    IN DWORD dwReserved
);

参数的意义是:

lpszUrl: 需要测试能否建立连接的 URL 地址,可以为空;
dwFlags: 目前只能是 FLAG_ICC_FORCE_CONNECTION(这个常量 Delphi 中没有声明,其值为 $00000001);
dwReserved: 目前只能为 0。

调用的说明:

如果 lpszUrl 是非空的,Windows 从中解析出 Host 名然后 Ping 这个指定的 Host。
如果 lpszUrl 是空的,并且 WinInet 内部服务器的 database 中有一个关于最近的 Server 的纪录,Windows 就从这条纪录中解析出 Host 名然后 Ping 它。

如果能够成功的连接返回 True,否则返回 False;

以下是一个判断当前计算机是否联网的例子:

procedure TForm1.Button1Click(Sender: TObject);
begin
    if InternetCheckConnection('http://www.yahoo.com/', 1, 0) then
        edit1.text:= 'Connected'
    else
        edit1.text:= 'Disconnected';
end;

通过上述的方法只能检测出当前计算机是否物理联网,即网线是否接好,网卡是否能顺利工作,不能确定是否能够实现获得 Internet 服务,即是否能和 ISP 进行 Internet 连接。
这时可以通过另一个 Win32 Internet(WinInet) 函数 InternetQueryOption 来检测;
这个函数的功能是查询指定 Internet 句柄的状态、选项。
其 API 声明如下:

BOOL InternetQueryOption(
    IN HINTERNET hInternet,
    IN DWORD dwOption,
    OUT LPVOID lpBuffer,
    IN OUT LPDWORD lpdwBufferLength
);

参数的意义是:

hInternet:查询对象的 Internet 句柄(全局查询时为 nil),
dwOption:查询的项目;
lpBuffer:返回的查询结果;
lpdwBufferLength:查询结果的字节长度(包括 IN 和 OUT);

查询成功返回 True,否则返回 False;

我们要查询当前计算机的 Internet 连接状态时可以使用查询项目 INTERNET_OPTION_CONNECTED_STATE,

得到的 ConnectState 返回值可能是以下值的一个或几个值之和:

INTERNET_STATE_CONNECTED               :$00000001 连接状态;
INTERNET_STATE_DISCONNECTED            :$00000002 非连接状态(和 INTERNET_STATE_CONNECTED 对应);
INTERNET_STATE_DISCONNECTED_BY_USER    :$00000010 用户请求的非连接状态
INTERNET_STATE_IDLE                    :$00000100 连接状态,并且空闲
INTERNET_STATE_BUSY                    :$00000200 连接状态,正在响应连接请求

以下是一个判断当前计算机是否可以获得 Internet 服务的例子:

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;

procedure TForm1.Button1Click(Sender: TObject);
begin
    if CheckOffline then
        edit1.text:= 'Connect To ISP'
    else
        edit1.text:= 'Disconnect To ISP';
end;

需要说明的是 InternetQueryOption 函数的检测结果只能表明当前的 Internet 设置是可用的,
并不能表示计算机一定能访问 Internet,例如网线掉了,网卡突然坏了之类的错误就没法检测出来,
要想检测当前计算机是否能够获得 Internet 服务了必须两个函数结合起来使用。

以上程序在 Win2000, Delphi5.0 下调试通过。

最后要提醒大家注意的是在 uses 中要加上 WinInet。
if GetSystemMetrics(SM_NetWork)<>0 then 
  ShowMessage('Connected');

苹果正式发布iOS 6.1 最快本周日即可越狱 苹果高管:运行iOS 6的设备达3亿 Chrome OS 黑客大赛总奖金为314.159万美元 微软雷德蒙研究院副总裁:从计算研究到惊人发明 还驾驭不了4核? 别人已模拟出百万核心上的并行 RIM将网络直播BlackBerry 10发布会 解读TDD的五大误区 Amazon 2012财年Q4财报:电子书业务增长70% 从暴风影音CTO到创业者:画中画相机话中话 为什么Android应用开发总要比iOS晚? 传奇VC马克.安德雷森:未来的企业什么样? 呼吁国会通过“创业签证”:奥巴马助力美国招揽海外人才 Surface Pro最低1019美元,价值究竟如何? 搜狗号码通产品经理谈微创新 数据和运营更关键 在线推荐系统是如何进行工作的? 欧朋浏览器上架App Store,iOS生态真要变天? 苹果iOS 6.1地图搜索API将替代谷歌Places Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 NoSQL依赖的不只是大数据 还有应用程序架构的改变 新一代Apple TV增强内在组件 外观不变 加速Web开发的7款知名HTML5框架 Firefox OS开发者日来袭 5小时15款Web应用出炉! 微软发布Office 365家庭高级版 订阅费499元/年 鲍尔默对Office信心满满,十亿用户量触手可及 【多图】梦幻现实 IBM的未来超级计算机水世界 一名骨灰级工程师的OpenStack部署总结引发的讨论 解读DuckDuckGo搜索 百万点击也敢叫板Google 开发者成功学:扔掉你那些很sexy的想法 如何在文本文件中查找一个串 100分,如何安装sturts?解决马上送分 求急! JMAIL组件的收邮件附件的问题,请熟悉JMAIL使用的帮忙看看。 高手请指点..急呀..在线等... 请问怎样固定一个窗口的大小? 请问用正式版能不能修复已过期的sql server 试用版,让它重新启动起来? Asp.net怎麼執行存儲過程﹖是不是用存儲過程執行就不會出現臟數據﹖ ERWin是个什么东东? 键盘响应(F1) 怎么样把一个目录的权限完全给指定的user? 分布式数据处理问题-Sqlserver 开发人员请指点!! 判断数字问题 谁有刷新隐藏帧的例子? 我做的第一个网站,大家去看看,多提宝贵意见,谢谢! 请帮助 我是一个初学者,在学习深入浅前MFC有一些看不懂,我应该先看看什么? 求助 请介绍几个Tuxedo的网站、论坛 IIS服务器与ORACLE数据库在一台电脑上连接没问题,但是将其分开各占一台电脑后联接就失败了!为何? 通过什么函数获得float型变量的整数部分呢? 怎样使工具条和菜单条可以用鼠标按住拖动? TEXTAREA不可以填默认值进去吗? 菜鸟求助 oracle数据库连接池的问题 vc控件窗口 真奇怪,treeView 双击事件老报错,请高手看看,是不是csdn搞错了 请问,刚刚装的SQL SERVER2000 是不是需要配置? Finding SQL servers that does not broadcast on the LAN 请问这个SQL语句该怎么写?在线等待,马上给分~ 请问如何让listview具有单选功能??就是选中一条后该行就变兰? 5、五一散分帖,大家说一个比较好玩的地方:P Huffman 编码的译码方法??? 求助学习SQL server 的网站 寻找access数据库书籍电子版 有关redo log的archive,哪位能帮我解释以下Oracle Alert messages显示的信息? 谁来救我!!!谁有TreeView关于VB.Net的代码 有分送!!apache和tomcat怎么样整合,我想要简单一点的方法。 哪位仁兄告诉我Numega TrueTime的下载地址,给100分 std::string 和c-string 的问题 新手问题,十万火急!! 新手问个苯问题关于记录集(40)在线求 如何将EXCEL数据导入到SYBASE数据库中? 做asp程序员能拿多少钱?~` 有助与提高自己的想法,,征集!!! to 阿德 讨论:如何向一个函数传递两个参数(表名和字段名),就可以得到该字段的具体值。 我如何使在网页上显示硬回车? MySql数据库之国际化问题 javascript问题! 会者不难! CppWebBrowser中打开网页出现对话框(注意不是广告等新网页窗口),怎么自动取消或确定? 到底成吉思汗杀了多少人 有没有绝对最高温度如题 后宫佳丽三千人,铁棒磨成绣花针.是啥意思啊? 怎样测热敏电阻阻值 Mg和HCO3怎么反应 ca(hco3)2+co2 可以反应么?为什么? 同步带HTD和MTD有什么差异 一台电视机的价钱是一个电熨斗的5倍,电视机比电熨斗贵960元 ,电视机和电熨斗各多少元?(请详细说明或列式,不可用X方程) 质量为5kg的物体,置于倾角为30度的固定斜面上,物体在水平拉力F=50N的作用下沿斜面向上运动,物体与斜面的摩擦系数为0.1,求物体运动的加速度,若中途撤去F,则撤去F的加速度为多少? 放冰块在大塑料袋里,然后又在一个塑料袋里放牛奶再把两个塑料袋重叠起来,一直摇,会摇固体吗? 电熨斗使用时最高多少度 万有引力定律内容是什么 现在都有哪些理论 就像牛顿定律 还有相对论之类的? M理论中的膜是在不断膨胀吗 万有引力定律是什么?我是文科的想了解一下,以前学过,现在忘了 相对论是一个定理还是一本书? 物体从高处落下时,所受的空气阻力为它所受重力的1/8,则它下落的加速度大小为------,方向-------,如果物体向上运动,所受空气阻力大小不变,这时它的加速度大小为-------,方向是-------(g=10m/s^2) 浊度是地表水污染指标么? 一百度时,热敏电阻阻值为一百欧,电压表示数为三伏,零度时,热敏电阻值为五百欧,电压表示数为多少? sd敢达c机什么好啊各位大大务必细说啊,拳头剪刀布都要地呀 去除浊度采用什么工艺 热敏电阻在0度和100度的电阻分别为200千欧和10千欧姆.试计算该传感器在20度时的电阻值. 升降机天花板上挂一弹簧秤,其下挂一重物.当升降机静止时,弹簧秤的读数为10N.当升降机移动时,弹簧秤的读数变为8N.则升降机的加速度大小是____麻烦说下理由.. 浊度分析仪具体要看那些参数呢,匹磁的是进口的吗? 山东菏泽市有几个县都叫什么 SD敢达有哪些好用的C机分拳头,剪刀,布来说,最好分析一下机体 万有引力定律的发现有何深远意义 山东省菏泽市定陶县人口有多少 求函数的极值,画表格, 万有引力定律定义问题………………有写呆还是想问…………航天技术的不断发展,为人类探索宇宙创造了条件.1998年1月发射的“月球勘探者号”空间探测器,运用最新科技手段对月球进行近 一种商品打九折,获利300元,打八折,仍获利200元,求进价 一水平直传送带以速率2m/s匀速运行,把A处的工件送到B处,A,B距离10m,需要6s能把工件送到,传送带的动摩擦因数是多少如提高传送带速率,让所用时间最少,那么运行速率应该是多少求详解 如图所示,电压表连接在滑动变阻器固定接柱B与滑动触头C之间,滑动变阻器的总电阻为600Ω,当滑动变阻器左边长度为右边长度的2倍时,电压表的读数为8V,当触电C滑到变阻器的最左端时,电压表 光与时间与恒星人们看到的是不是由光反射到眼睛所呈象的请问 一个距离地球300光年 的星星 我们所看到的他的景象 是不是由光传播了300年 呈现到我们的眼前的?那意思是说我们看到的 和物 高一物理 牛二质量分别为M和 的物体用细绳连接,分别悬挂在定滑轮下,已知M>m,不计滑轮质量及一切摩擦,求天棚对滑轮的拉力 通电螺线管左侧和内部分别静止吊一导体环a和b,当滑动变阻器R的滑动触头c向左滑动时,b怎么摆动? 恒星有几个时期? 水平地面上放一个质量为2kg的物体,它与地面间的动摩擦因数u=0.25该物体在与水平方向成30°斜向下的推力F作用下,从静止开始匀加速运动,2S内向前移动4m,求推力F为多大我也是这么算的~可问题 空滤为什么要用纸做 恒星落下时间,急求!恒星只要是大家熟知的就好,比如:天狼星、织女星...之类的,请知道的人告诉我! 额定功率与最大功率换算.我记得有一个公式.谁能帮我想一下 . 我买了一罐咖啡粉,需要过滤,请问成都哪里有卖过滤的纸或者网呀? 霍金在大设计这本书中写道无中的涨落形成泡泡,这个理论是不是在M理论的框架内虽然m理论还没有完成但是大设计对 M理论有比较大的展望,我觉得霍金在大设计这本书中写道无中的涨落形成 为了实验器材的安全和实验顺利进行,改变R1阻值时,在5欧、8欧、10欧、12欧、24欧的供选电阻中,不能选用的电阻是______欧. 论证上帝是存在的 燃烧海绵能产生让人晕眩的气体?为什么? 为什么用棉花包冰块可以避免化 论证上帝是否存在 山一程,水一程表现出 ,风一更雪一更渲染出 在恒星上人类能不能生存?人类能不能有一个恒星家园?为什么人类生存的家园只能是行星?能不能这样:人类生存在恒星上,而有一个像太阳一样的行星围绕地球转动,给地球提供光和热?我觉得 目前纸品防油剂都有哪些? 海绵燃烧产生的气体对人有什么效果 外星人可能生存在怎样的恒星系统中?搞错了,sorry 关于上帝存在的道德论证 山一程 水一程 絮已为萍风卷叶 深夜灯火明 风一更 雪一更 离人偏识长更苦 却道相思情 这首词还可以吗虽然有前人的句子,但是我是照着我的心情写的喷的别来 有懂这些的前辈们给指点一下 Mg(HCO3)和2OH-生成MG(OH)2的化学方程式化学一个方程式,给忘记了. 为什么纸放油里着不了 谁知道成吉思汗的生平? 计算 12度的余弦值乘24的余弦值乘48度的余弦值乘84度的余弦值 DIS测定通电螺线管内部磁感应强度要控制哪些物理量不变 金正恩出席朝军2万人连长大会 发表\中印携手,印媒欢呼并警惕美国情报机构“搞砸了”奥斯卡影后赞与查尔斯王子跳舞比“亲热朝或将第四次核试 美韩揣测朝“核冒险美国“窃听门”或成欧盟峰会议题 法国第七届阿布扎比电影节开幕巴西国企独揽石油招标引抗议 政府进退央行:贷款基础利率集中报价和发布机制杜青林对西班牙进行友好访问澳首都领地同性恋合法化 或澳高等法院墨前警长向美贩毒 被判13年监禁罚款英国小王子受洗照流出 四世同堂皇室香纽约侨界强烈谴责美电视节目歧视性言论日媒总结:当你有这些七大征兆可能将被美国“窃听门”或成欧盟峰会议题 法国美国十岁男孩弑父案即将宣判 孩子去处英国男子爱整人 对妻子恶作剧意外把自奥斯卡影后赞与查尔斯王子跳舞比“亲热日本拟在多个城市开设赌场 年收入可达中国近20年来首次修改消费者权益保护八十岁的时候,我们结婚吧!4名犯罪嫌疑人 被依法批准逮捕桃叶渡艺术馆 纸上的桃花,免费赏一个今天进入夏时制社区公章之“累”提醒简政放权热心市民帮她找到家人今年清明首艘“江祭船”开航曝“家丑” 黄晓明鼓励钢琴天才总第779期《三联生活周刊》“药儿园”的病根是缺德方俊金 被冤成跨省逃犯企业年薪30万到50万抢人官员别墅怎样备案娃娃们唱白局,挺有范儿中国海警编队29日 在我钓鱼岛领海巡《寂寞的公因数》满盘皆输@新华视点解决演编之争,电视台该担起责任《真相》“我们不惹事,但也不怕事”
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘