我已经安装的程序(只是一个普通C++MFC程序,不安装Windows的基础),需要设置一些注册中的数值类型的基于互联网连接:宽带,拨号、和/或无线。现在信息正在确定通过询问一系列的是或不是的问题。问题是这的人做的安装是不是同一个人拥有和使用计算机,所以他们并不总是知道什么是这些问题的答案应该是。有没有办法通过程序确定任何这样的信息?代码是用C++编写(及任选MFC)为Windows XP。.网为基础的解决方案不是一个选项,因为我不想要确定如果在框架安装之前,我们的安装应用程序可以运行。

为了澄清,这个问题,主要是无线和拨号连接都不是"永远的",它创建了一个需要我们的产品表现一种不同的方式,因为我们的服务器是不是总是可用的。因此,一个严格的速度测量溶液不会帮助,虽然有一定的速度依赖使产品并不试图发送的信息通过拨号连接,尽快为它连接。

有帮助吗?

解决方案

使用InternetGetConnectedState API检索的互联网连接状态。

我测试了它,它工作正常。

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

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

其他提示

[我不知道如何获得准确的信息要求,但...]也许你可以重新措辞(己)什么你试试来完成吗?喜欢,而不是要求"不用户有宽带或拨号",要求"如何多的带宽不用户的互联网连接已经"-然后你就可以尽力回答的重新措辞的问题,没有任何用户输入(如通过测量带宽)。

顺便说一句.如果你问的用户只是用于"宽带或拨号",可能会遇到一些问题:

  • 如果用户有一些连接类型你没有预料到的?
  • 如果有什么用户不知道(因为只有一个网线去拨DSL/路由器)?
  • 如果有什么的用户连接通过一系列的连接(VPN通过拨号,其他一些网络,该网络具有宽带?)

要求对"能力"而不是"类型"可能更有用,在这些情况。

关于这个问题"是互联网连接永久性的或不是?":

  • 最好的方式,将可能使该程序足以 总是 处理非永久连接:-)将其工作同样,与拨号连接和宽带...
  • 或者,也许你可以找出用户的互联网连接已经建立,以及比较有系统正常运行时间?如果连接已经在线几乎只要在电脑上运行,这可能是一个永久连接。

无论如何,这些试探可能会失败,为晦涩的连接类型。

此外,关于对不送大量的数据:如果人们有一个"宽带+低业务限制"的关税,你不应该将大量的数据,即使带宽,允许:-)

最好的选择就是要抓住的默认活动的网络连接,确保它是一个互联网连接(ping google.com 或类似的),然后问这是什么类型的设备。你应该能够确定从什么连接的用户。

我相当确信这是可能的,但不知道该如何去做。

我认为你应该只做一个快速连接的速度测试。刚刚下载某些特定尺寸的文件,时间需要多长时间,你会知道的速度。我同意其他人,不问他们是什么类型的连接他们有什么更重要的是速度。也许明年他们出来100m的拨号.你想要每个人都使用这个惊人的新设备获得的蹩脚的低带宽版本的程序?

我同意奥利弗,你暗示:你有的功能已经到应付连接损失,为什么不能使它的默认。

宽带连接,可以获得搞砸了:routersoftware冻结(发生对我很重要),或poweradapter,炸薯条...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top