0

有人可以给我一个提示...我正在尝试使用 dotRAS .NET 控件,并且此代码internetConnected使用事件处理程序更改 (boolean) 的值...

但似乎该状态RasConnectionState.Disconnected不是由 dotRAS hangup() 触发的..

有任何想法吗?我做错了……还是我设法找到了一个错误?

    public class USBModem
    {
        // private vars
        private RasDialer dialer = new RasDialer();
        private bool internetConnected = false;

        /// <summary>
        /// Default constructor for USBModem
        /// </summary>
        public USBModem()
        {
            // Add Events for dialer
            dialer.StateChanged += new EventHandler<StateChangedEventArgs>(dialer_StateChanged);
        }

        void dialer_StateChanged(object sender, StateChangedEventArgs e)
        {
            // Handle state changes here
            switch (e.State)
            {
                case RasConnectionState.Connected:
                    internetConnected = true;
                    Console.WriteLine(e.State.ToString());
                    break;
                case RasConnectionState.Disconnected:
                    internetConnected = false;
                    Console.WriteLine(e.State.ToString());
                    break;
                default:
                    Console.WriteLine("INFO -> Unhandled state: " + e.State.ToString());
                    break;
            }
        }

        public void ConnectInternet(string connectionName)
        {
            // Dial
            dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
            dialer.EntryName = connectionName;
            dialer.DialAsync();
        }

        public void DisconnectInternet()
        {
            foreach (RasConnection connection in dialer.GetActiveConnections())
            {
                connection.HangUp();
            }
        }
    }
4

2 回答 2

2

我在 1.2 版本中对 RasDialer 的文档进行了一些更改,希望能解决这个问题。

于 2010-09-02T01:08:42.100 回答
1

显然,这是一个非常简单(但普遍存在)的错误。

基本上,该RasDialer组件仅在拨号操作正在进行时处理事件。

如果在连接尝试期间调制解调器线路可能被拔出,则会引发断开连接事件。

如果要监视机器上的客户端连接以了解连接/断开连接或其他几个事件,请使用RasConnectionWatcher. 当在拨号操作之外进行连接更改时,这将接收来自 Windows 的通知。

关于 dotRAS 的文档在 Google 上特别稀少……请访问http://dotras.codeplex.com了解更多信息。SDK 中包含的帮助文件也非常有用。

于 2010-04-14T00:38:12.037 回答