C# 我怎样才能知道国家是什么;“连接”;通过InternetGetConnectedState
我正在创建一个应用程序,该应用程序将在连接状态为未连接时自动连接到WiFi 我对它使用了C# 我怎样才能知道国家是什么;“连接”;通过InternetGetConnectedState,c#,connection,wifi,state,C#,Connection,Wifi,State,我正在创建一个应用程序,该应用程序将在连接状态为未连接时自动连接到WiFi 我对它使用了wininet.dll,并使用了它的InternetGetConnectedState()方法 但是,我遇到了一个问题,每当我连接到WiFi并且连接状态为“连接”时,InternetGetConnectedState()将返回false(表示未连接),并且它将尝试一次又一次地连接到WiFi 代码如下: while (true) { if (InternetGetConnectedState(out C
wininet.dll
,并使用了它的InternetGetConnectedState()
方法
但是,我遇到了一个问题,每当我连接到WiFi并且连接状态为“连接”时,InternetGetConnectedState()
将返回false(表示未连接),并且它将尝试一次又一次地连接到WiFi
代码如下:
while (true) {
if (InternetGetConnectedState(out ConState,0))
{
(do something else)
}
else
{
(connect to wifi)
}
}
是否有其他方法可用于了解连接的
状态
,或者是否应使用相同的方法等待状态更改?任何帮助都将不胜感激。我可能弄错了,但在对wininet.dll的引用中指出:“(InternetGetConnectedState)如果存在活动调制解调器或LAN Internet连接,则返回TRUE;如果没有Internet连接,则返回FALSE”,请参阅。我认为这个dll可能无法识别wifi网络。否则,该声明将在其解释中包含“路由器”。您可以调用GetLastError函数以获取其他信息。提供有关网络状态的所有信息。您可以使用演示代码(Release文件夹中有exe)查看其功能。非常感谢您的回答,但我发现NetWork List Manager中的状态不包含“连接”状态。或者我还没有找到它?对于您的任务(检测internet连接何时可用),您不需要此状态。NLM提供以下状态:断开连接-无网络连接;ipv4/ipv6 Internet-您有Internet连接。其他-没有互联网,但可能有本地连接。因此,一旦网络状态更改为ipv6/ipv4 Internet,您就有了Internet连接。当你上网时,你不需要调用任何其他函数来检测。