我有一个安装程序(只是一个常规的Windows程序,不是基于C++ Installer ),它需要根据互联网连接的类型设置一些注册表值:宽带、拨号和/或无线。现在,这一信息是通过询问一系列是或否的问题来确定的。问题是做安装的人不是拥有和使用计算机的同一个人,所以他们并不总是确定这些问题的答案应该是什么。有没有一种方法可以程序化地确定这些信息?该代码是在Windows XP和更高版本上用C++ (和可选的MFC)编写的。基于.NET的解决方案不是一个选择,因为我不想在我们的安装程序运行之前确定是否安装了框架。
要澄清的是,问题主要是无线和拨号连接不是“始终在线”的,这就需要我们的产品以不同的方式运行,因为我们的服务器并不总是可用的。因此,一个严格的速度测量解决方案不会有帮助,尽管有一个与速度相关的设置,这样产品就不会试图通过拨号连接发送MB的信息。
发布于 2010-01-19 04:47:13
使用InternetGetConnectedState接口检索internet连接状态。
我测试了它,它工作得很好。
我找到了这个文档,它可以帮助我:
发布于 2008-09-18 15:37:54
我不知道怎么才能得到你要的信息,但是...也许你可以(为自己)重新表述一下你试图实现的目标?例如,不要问“用户是否有宽带或拨号”,而要问“用户的互联网连接有多少带宽”--然后你可以尝试在没有任何用户输入的情况下回答这个重新表述的问题(比如通过测量带宽)。
顺便说一句。如果你只是问用户“宽带或拨号”,你可能会遇到一些问题:
如果用户有一些你不知道的anticipate?
,则只有一根以太网电缆连接到PPPoE DSL modem/router)?
在这些情况下,询问“功能”而不是“类型”可能更有用。
发布于 2008-09-18 17:10:26
关于“互联网连接是永久的还是非永久的?”的问题:
最好的方法可能是使应用程序足够强大,以始终处理非永久连接:-)这将与拨号和broadband...
无论如何,对于模糊的连接类型,这些启发式方法可能会失败。
另外,关于不发送大量数据的观点:如果人们有“宽带+低流量限制”的资费,即使带宽允许,也不应该发送大量数据:-)
https://stackoverflow.com/questions/93545
复制相似问题