现在的位置: 首页 > 综合 > 正文

VC获得本机网络连接状态

2018年04月10日 ⁄ 综合 ⁄ 共 4535字 ⁄ 字号 评论关闭
文章目录

 

MSDN中定义了7种参数类型,但实际中wininet.h头文件中只对四种类型的值进行了定义
7种类型:
INTERNET_CONNECTION_LAN          局域网
INTERNET_CONNECTION_MODEM        拨号上网
INTERNET_CONNECTION_PROXY       代理
INTERNET_CONNECTION_MODEM_BUSY  代理被占用
INTERNET_CONNECTION_CONFIGURED    虽然可以联网,但当前不可用
INTERNET_CONNECTION_OFFLINE     离线
INTERNET_RAS_INSTALLED       RAS安装

 Wininet.h头文件中值定义:
// Flags for InternetGetConnectedState and Ex
#define INTERNET_CONNECTION_MODEM           0x01
#define INTERNET_CONNECTION_LAN             0x02
#define INTERNET_CONNECTION_PROXY           0x04
#define INTERNET_CONNECTION_MODEM_BUSY      0x08  /* no longer used */
#define INTERNET_RAS_INSTALLED              0x10
#define INTERNET_CONNECTION_OFFLINE         0x20
#define INTERNET_CONNECTION_CONFIGURED      0x40

InternetGetConnectedState():对网络状况不能及时反应
IsNetworkAlive():可以及时反应网络连通情况,但是需要服务System Event Notification支持(系统默认自动启动该服务)。使用该函数,需要安装最新的SDK(如.net的)

微软文档:
http://www.microsoft.com/china/technet/security/topics/serversecurity/tcg/tcgch07n.mspx

System Event Notification

System Event Notification (SENS) 服务监视并跟踪计算机事件(如 Windows 登录网络和电源事件)。它还将这些事件通知给 COM+ 事件系统 订阅者。在 Windows XP 和 Windows Server 2003 上默认安装并自动运行此服务。

如果 System Event Notification 服务停止,COM+ Event System 服务的订阅者将不会接收到事件通知,并且会发生以下问题:

Win32 API IsNetworkAlive() 和 IsDestinationReachable() 将无法运行。这些 API 大多在便携式计算机的移动应用程序中使用。

ISens* 接口将无法使用。SENS 登录/注销通知将失败。

SyncMgr (mobsync.exe) 将无法正常运行。SyncMgr 依赖于连接信息,以及来自 SENS 的网络连接/断开、登录/注销通知。

COM+ EventSystem 试图向 SENS 通知某些事件时将失败。

Volume Shadow Copy 服务将不能正常加载,这将导致 Windows 备份 API 失败。

 

抱歉!评论已关闭.