首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中检测拨号、宽带或无线互联网连接?

如何在C++中检测拨号、宽带或无线互联网连接?
EN

Stack Overflow用户
提问于 2008-09-18 15:24:14
回答 6查看 2.6K关注 0票数 1

我有一个安装程序(只是一个常规的Windows程序,不是基于C++ Installer ),它需要根据互联网连接的类型设置一些注册表值:宽带、拨号和/或无线。现在,这一信息是通过询问一系列是或否的问题来确定的。问题是做安装的人不是拥有和使用计算机的同一个人,所以他们并不总是确定这些问题的答案应该是什么。有没有一种方法可以程序化地确定这些信息?该代码是在Windows XP和更高版本上用C++ (和可选的MFC)编写的。基于.NET的解决方案不是一个选择,因为我不想在我们的安装程序运行之前确定是否安装了框架。

要澄清的是,问题主要是无线和拨号连接不是“始终在线”的,这就需要我们的产品以不同的方式运行,因为我们的服务器并不总是可用的。因此,一个严格的速度测量解决方案不会有帮助,尽管有一个与速度相关的设置,这样产品就不会试图通过拨号连接发送MB的信息。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-19 04:47:13

使用InternetGetConnectedState接口检索internet连接状态。

我测试了它,它工作得很好。

我找到了这个文档,它可以帮助我:

http://www.pcausa.com/resources/InetActive.txt

票数 2
EN

Stack Overflow用户

发布于 2008-09-18 15:37:54

我不知道怎么才能得到你要的信息,但是...也许你可以(为自己)重新表述一下你试图实现的目标?例如,不要问“用户是否有宽带或拨号”,而要问“用户的互联网连接有多少带宽”--然后你可以尝试在没有任何用户输入的情况下回答这个重新表述的问题(比如通过测量带宽)。

顺便说一句。如果你只是问用户“宽带或拨号”,你可能会遇到一些问题:

如果用户有一些你不知道的anticipate?

  • what连接类型怎么办(因为如果用户通过一系列连接(通过拨号连接到modem/router)?

  • what,连接到其他有宽带的网络?)

,则只有一根以太网电缆连接到PPPoE DSL modem/router)?

  • what

在这些情况下,询问“功能”而不是“类型”可能更有用。

票数 3
EN

Stack Overflow用户

发布于 2008-09-18 17:10:26

关于“互联网连接是永久的还是非永久的?”的问题:

最好的方法可能是使应用程序足够强大,以始终处理非永久连接:-)这将与拨号和broadband...

  • alternatively,一样工作也许你可以找出用户的互联网连接已经建立了多长时间,并与系统正常运行时间进行比较?-)
  • 最好的方法可能是使应用程序足够强大,以始终处理非永久连接:-)这将与拨号和拨号功能相同。如果连接几乎在计算机运行时一直处于在线状态,则可能是永久连接。

无论如何,对于模糊的连接类型,这些启发式方法可能会失败。

另外,关于不发送大量数据的观点:如果人们有“宽带+低流量限制”的资费,即使带宽允许,也不应该发送大量数据:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/93545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档