如何检测win32上的datacard连接和断开事件?

时间:2009-06-29 06:07:20

标签: c++ c winapi networking network-programming

我有一张数据卡,一旦插入数据卡,我就会使用wm_device_change事件来获取事件。

但是,当我的数据连接实际连接到外部世界时,我也希望得到事件。

我的意思是说,一旦我们点击数据卡的连接/断开按钮,我就想得到这个事件。换句话说,我想知道什么时候建立连接并断开连接。

数据卡是Vodaphone数据卡,我正在尝试使用该数据卡进行浏览。无论什么是SDK,操作系统应该在某个地方获得连接和断开网络的事件是否有任何方法来访问操作系统正在获取的事件。我可以在通知中看到Vodaphone连接和LAN连接的变化。

数据卡是其中具有SIM卡的USB设备,可用于通过GPRS访问互联网。

如何在Win32 C / C ++程序中执行此操作?

2 个答案:

答案 0 :(得分:0)

当然这取决于您的“数据卡”sdk或驱动程序以及它们是否支持此类事件。

否则我建议的是,当您在SDK中调用“连接”或“断开连接”方法时,您使用任何返回值来表示成功或以其他方式提升您自己的事件。

在不知道此数据卡是什么以及它连接到什么的情况下,我看不出我们如何更全面地回答您的问题。

答案 1 :(得分:0)

要检测网络更改,您可以使用NotifyAddrChange(0,0);由于这是阻止,您将需要一个线程。线程函数可以像

一样简单
while(true) {
  NotifyAddrChange(0,0);
  PostMessage(gHWnd, WM_APP,0,0);
}

不要为记录的异步行为而烦恼。这根本行不通。