使用API​​监视来自我的应用程序的RAS拨号连接

时间:2012-07-24 05:31:32

标签: windows winapi serial-port ras

我使用RASDIAL或RASPHONE exe创建了一个DialUp连接。我希望我的应用程序监视已建立的连接,如果连接断开,我的应用程序应退出。如何以编程方式管理这个?请建议我..

3 个答案:

答案 0 :(得分:1)

我建议您使用线程定期检查连接状态。

这可以使用rasapi32.dll中的RasEnumConnections来完成。此调用返回活动连接列表,然后您可以迭代以检查您打开的连接是否在其中。

答案 1 :(得分:1)

用于接收有关RAS连接和断开连接的基于事件的通知的正确Win32 API是RasConnectionNotification。

这是一个链接:http://msdn.microsoft.com/en-us/library/aa376726(VS.85).aspx

如果您在CodePlex上使用DotRas SDK,RasConnectionWatcher将使用上述API处理这些通知。

using DotRas;

RasConnectionWatcher watcher = new RasConnectionWatcher();
watcher.Connected += (sender, e) => 
    { 
        // Connected! 
    };
watcher.Disconnected += (sender, e) => 
    { 
        // Disconnected! 
    };

您还可以通过设置Handle属性来指定从RasDial返回的句柄,以接收特定于该句柄的事件。

watcher.Handle = handle;
watcher.EnableRaisingEvents = true;

如果您有兴趣,请点击此处链接到DotRas:http://dotras.codeplex.com

编辑:我只想添加,如果您没有指定DotRas或Win32 API的句柄,您将从机器上添加/删除的所有连接,断开连接和带宽接收事件。

答案 2 :(得分:0)

lpvNotifier函数的

RadDial允许您传递RasDialFunc1,它将接收有关连接生命周期的通知事件。 (RasGetConnectStatus也可用于投票)