0

誰かが私に注意を向けることができますか...私はdotRAS .NETコントロールを使用しようとしています.このコードはinternetConnected、イベントハンドラーを使用して(ブール値)の値を変更します...

しかし、状態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コンポーネントはダイヤル操作の進行中にのみイベントを処理します。

接続の試行中にモデム回線が取り外された可能性がある場合、disconnected イベントが発生します。

マシン上のクライアント接続の接続/切断、またはその他のイベントを監視する場合は、RasConnectionWatcher. これにより、ダイヤル操作以外で接続の変更が行われたときに、Windows から通知が届きます。

dotRAS に関するドキュメントは、Google では特にまばらです。詳細については、 http: //dotras.codeplex.com にアクセスしてください。SDK に含まれるヘルプ ファイルも非常に役立ちます。

于 2010-04-14T00:38:12.037 に答える