InternetCheckConnection始终返回false

问题描述:

我想使用Wininet函数InternetCheckConnection来检查本机何时连接到互联网并且可以访问特定的主机。 问题是这个函数总是返回false,无论我把它放在哪个URL上。InternetCheckConnection始终返回false

MSDN link

只是胡乱猜测,但也许这是由于个人防火墙阻止了Windows DLL和/或应用程序的一个都传出连接?

+0

我没有在我的机器上配置防火墙。所有协议和端口都可以自由访问。 :) – gmuller 2009-02-18 12:31:34

您查看过GetLastError()吗?如果我正确阅读MSDN,则需要检查ERROR_NOT_CONNECTED以确定您是否真正离线。

以下组合为我工作在Windows 7和Windows XP SP3:

InternetCheckConnection("http://www.google.com", FLAG_ICC_FORCE_CONNECTION, 0) ; 

GetLastError()返回0,如果接头是可能的,它返回 12029(尝试连接到服务器失败) 如果不。

继combonations不为我工作:

InternetCheckConnection(NULL, FLAG_ICC_FORCE_CONNECTION, 0) ; 

GetLastError()返回12016(请求的操作是无效的)。

InternetCheckConnection(NULL, 0, 0) ; 
    InternetCheckConnection(("http://www.google.com", 0, 0) ; 

GetLastError()返回2250(无法找到网络连接)。