C InternetGetConnectedState 循环

标签 c winapi wininet

我想等到互联网到来,所以我用 InternetGetConnectedState 函数创建了一个循环。我在互联网被禁用时启动了程序。然后我启用互联网。但它仍然不存在。我该怎么办?

    LPWORD bur;
int abc;
    abc = InternetGetConnectedState(bur,0);
    while (abc==0){
    printf ("zzz");
    if (abc==1)
    break;
    }

最佳答案

尝试将调用放入循环中,abc 永远不会改变。

此外,您不应该将结果分配给 abc...而且,它是一个 DWORD...

DWORD abc = 0;
printf ("Waiting for an internet connection.");
 while ((abc & 0x40)){
    InternetGetConnectedState(&abc,0);
    printf (".");
}

然后将它与 1 或 0 进行比较并不会真正告诉你任何信息,看看它可以返回的标志:-

INTERNET_CONNECTION_CONFIGURED
0x40
Local system has a valid connection to the Internet, but it might or might not be currently connected.
INTERNET_CONNECTION_LAN
0x02
Local system uses a local area network to connect to the Internet.
INTERNET_CONNECTION_MODEM
0x01
Local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM_BUSY
0x08
No longer used.
INTERNET_CONNECTION_OFFLINE
0x20
Local system is in offline mode.
INTERNET_CONNECTION_PROXY
0x04
Local system uses a proxy server to connect to the Internet.
INTERNET_RAS_INSTALLED
0x10
Local system has RAS instal

关于C InternetGetConnectedState 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182516/

相关文章:

c++ - 使用 C++ 将网页保存到磁盘

c - 结构数组中的值变成垃圾值

c - 如何使用 C (linux) 中的管道将 GCC 的输出保存在文件中?

c - 用函数修改 C 结构的子结构(用于 trie 的应用)

C 预处理 : pasting valid token and value of a token

c# - WebBrowser 控件和 Wininet API

perl - 如何在 Perl 中修改 Windows NTFS 权限?

windows - 在 Delphi 中下载文件

c++ - 调试/发布中的控制台程序

delphi - HttpSendRequest 阻止 SOAP 调用