1

我正在尝试创建代码来自动检测 VPN 连接和一般互联网连接的中断(以及当它重新连接到两者时)。

我已经使用 VpnApiClass(智能感知中的每个操作)和 NetworkChange.NetworkAvailabilityChanged 尝试了 AddHandler。NetworkChange.NetworkAvailabilityChanged 适用于 Internet 丢弃,但不适用于 VPN 丢弃。

    '''''VB.NET:
    Private Sub Main_Load(sender As Object, e as EventArgs) Handles MyBase.Load
       Dim tmpVpn as New NpnApiClass

       AddHandler tmpVpn.VpnStateNotification, AddressOf NetworkConnectionChanged
       AddHandler tmpVpn.VpnEventAvailableNotification, AddressOf NetworkConnectionChanged
       AddHandler NetworkChange.NetworkAvailabilityChanged, AddressOf NetworkConnectionChanged
    End Sub

    Private Sub NetworkConnectionChanged()
       '''''Note: CommonElements is a dll file I'm referencing, function returns a boolean (True if connected, False if disconnected).
       If Not CommonElements.isConnectedToNetwork_NetworkInterface() Then
           Main.AddFiles.Enabled = False
           Main.RemoveFiles.Enabled = False
           Status.Text = "Disconnected"
       Else
           Main.AddFiles.Enabled = True
           Main.RemoveFiles.Enabled = True
           Status.Text = "Connected"
       End If
    End Sub

期望在与 VPN 断开连接时看到主窗体上的按钮禁用按钮并更新状态标签文本。然后启用按钮并在重新连接到 VPN 时更新状态标签文本。相反,除了从我的笔记本电脑上拔下以太网线外,它不会更新任何东西。没有错误或未处理的异常。

4

0 回答 0