如何检查用户是否与c + +桌面应用程序在线

问题描述:

我有应用程序需要加载本地html文件,如果用户不在线,如果不是,它会通过嵌入式控制加载他的web应用程序。如何检查用户是否与c + +桌面应用程序在线

如何检查用户是否与嵌入IE浏览器控制的c + +桌面应用程序在线?

+1

你怎么定义 “正在网上”? – juanchopanza

+0

你想用这些信息做什么?试试和检索一些数据或者ping一个已知的好主机,比如说google更简单吗? – RedX

+0

如果用户连接到互联网,并可以打开网页,在线 – Marko

您可以尝试使用InternetGetConnectedState函数。但是,请确保你的荣誉,在备注部分给出的意见,尤其是:

从的InternetGetConnectedState的返回值为true表示 至少一个连接到因特网可用

您可能还尝试直接使用您的特定URL的InternetCheckConnection函数。

还有一些具有相同(或更好)的功能更新COM接口:

+0

这看起来不错,我会测试它 – Marko

您可以尝试ping www.google.com。如果使用Visual C++,则可以使用IcmpSendEcho function

+0

现在看着它...... – Marko

您可以使用Network Location Awareness (NLA)来确定机器所连接的当前网络的特征。这与检查'用户是否在线'并不完全一样,但应该足够了。

即使这样,如果互联网可以访问,您也无法保证应用程序将正确加载。如果在线情况正常,那么只需尝试在线负载并且如果失败返回到本地HTML,可能会更好。

+0

是的,但如何退后?我尝试过阅读html标题,但是当用户离线时,浏览器控件不会读取标题,而是读取域名,并且使检查变得复杂 – Marko

+0

@ Alf在评论中的建议如何? –

+0

但ie6-8用户没有html5 – Marko