InternetCheckConnection 始终返回 false
我想使用 Wininet
函数 InternetCheckConnection
来检查机器何时连接到互联网并可以访问特定主机。 问题是这个函数总是返回 false,无论我输入什么 URL。
I want to use the Wininet
function InternetCheckConnection
to check whenever the machine is connected to the internet and can access a specific host.
The problem is that this function is always returning false, no matter the URL I put on it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
以下组合适用于 Windows 7 和 Windows XP SP3:
如果连接可行并且返回,则 GetLastError() 返回 0
12029(尝试连接服务器失败)如果没有。
以下组合对我不起作用:
GetLastError() 返回 12016 (请求的操作无效)。
GetLastError() 都返回 2250(找不到网络连接)。
Following combination works for me on Windows 7 and Windows XP SP3:
GetLastError() returns 0 if the connexion is possible and it returns
12029 (The attempt to connect to the server failed) if not.
Following combonations don't work for me :
GetLastError() returns 12016 (The requested operation is invalid).
for both GetLastError() returns 2250 (The network connection could not be found).
您检查过
GetLastError()
吗? 如果我没有正确阅读 MSDN,您需要检查ERROR_NOT_CONNECTED
以确定您是否真正离线。Have you checked
GetLastError()
? If I read MSDN correctly, you would need to check forERROR_NOT_CONNECTED
to determine whether you're truly offline.只是一个大胆的猜测,但这也许是由于个人防火墙阻止了 Windows DLL 和/或您的应用程序之一的所有传出连接?
Just a wild guess, but perhaps this is due to a personal firewall blocking all outgoing connections for one of the Windows DLLs and / or your application?
根据微软API文档InternetCheckConnection< /a> 已弃用。
我们可以使用 INetworkListManager接口,用于windows平台检查Internet是否连接。
下面是 win32 代码库:
According to Microsoft API document InternetCheckConnection is deprecated.
Instead of this API we can use INetworkListManager interface to check whether Internet is connected or not for windows platform.
Here below is the win32 codebase :