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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检测win32上的datacard连接和断开事件?相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

答案

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

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

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

另一答案

要检测网络更改,可以使用NotifyAddrChange(0,0);因为这是阻塞,所以您需要一个线程。线程函数可以很简单

while(true) {
  NotifyAddrChange(0,0);
  PostMessage(gHWnd, WM_APP,0,0);
}

不要打扰记录的异步行为。这根本行不通。

以上是关于如何检测win32上的datacard连接和断开事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于 c++/QT 的安装程序中检测互联网断开连接

C#命名管道,如何检测客户端断开连接

如果外部 ADO 连接已连接或断开,如何检测组件内部?

如何在 Win7 中断开蓝牙设备与 C# .Net 的连接

Heroku 上的 Sinatra/Thin 未检测到 HTTP 流连接 (SSE) 客户端断开连接

如何在 apollo 客户端中检测订阅(websocket)的断开和重新连接