使用DotMSN 2.0开发MSN机器人

在网络上查阅了很多关于通过DotMSN 开发包来开发MSN机器人 的小程序,为了验证其正确性,本人亲自测试,发现了这样一篇文章,他写的很好,没有问 题。下面就贴出源代码,和大家分享。请提前在项目引用中添加下载到的DotMSN.dll 文件,再using DotMSN ;

使用DotMSN 2.0开发MSN机器人

 

    using System;  
      
    using System.Collections.Generic;  
      
    using System.ComponentModel;  
      
    using System.Data;  
      
    using System.Drawing;  
      
    using System.Text;  
      
    using System.Windows.Forms;  
      
    using DotMSN;  
      
      
      
    namespace MSNBotTest  
      
    {  
      
        public partial class Form1 : Form  
      
        {  
      
            public Form1()  
      
            {  
      
                InitializeComponent();  
      
            }  
      
            DotMSN.Messenger msn = new DotMSN.Messenger();//初始化一个Messenger对象用来登陆服务器  
      
            private void button1_Click(object sender, EventArgs e)  
      
            {  
      
                try  
      
                {  
      
      
      
                    statusBar1.Text="正在连接到服务器...";  
      
                    msn.ConversationCreated += new Messenger.ConversationCreatedHandler(ConversationCreated);  
      
                    msn.Connect(textBox1.Text, textBox2.Text);//前一个为用户名,后一个为密码  
      
                    msn.SynchronizeList();初始化列表,用来显示在线用户  
      
                    statusBar1.Text="成功连接到服务器";  
      
                      
      
                }  
      
                catch (DotMSN.MSNException me)  
      
                {  
      
                    MessageBox.Show(me.ToString());  
      
                }  
      
      
      
            }  
      
            private void ReadMsg(Conversation sender, DotMSN.MessageEventArgs e)  
      
            {  
      
                //string content;  
      
                string input = e.Message.Text;  
      
                if (input.Equals("j"))  
      
                {  
      
                    string content = "你好,我是机器人小范";  
      
                    sender.SendMessage(content);  
      
                }  
      
      
      
                else if (input.StartsWith("H"))  
      
                {  
      
                    string content = "我很笨,很多功能还在开发哦";  
      
                    sender.SendMessage(content);  
      
                }  
      
                else  
      
                {  
      
                    string content = "你好啊,我不知道你说的是什么啊,有什么事情请输入H";  
      
                    sender.SendMessage(content);  
      
                }  
      
      
      
            }  
      
            private void ConversationCreated(Messenger sender, ConversationEventArgs e)  
      
            {  
      
                  
      
                e.Conversation.MessageReceived += new Conversation.MessageReceivedHandler(ReadMsg);  
      
            }  
      
      
      
            private void button2_Click(object sender, EventArgs e)  
      
            {  
      
                try  
      
                {  
      
                    ShowAll();  
      
                }  
      
                catch (Exception ex)  
      
                {  
      
                    MessageBox.Show(ex.ToString());  
      
                }  
      
            }  
      
            private void ShowAll()  
      
            {  
      
                try  
      
                {  
      
                    msn.SetStatus(MSNStatus.Online);  
      
                    AllListView.Clear();  
      
                    foreach (Contact contact in msn.GetListEnumerator(MSNList.ForwardList))  
      
                    {  
      
                        ListViewItem item = new ListViewItem(contact.Name);  
      
                        item.Tag = contact;  
      
                        if (contact.Status != MSNStatus.Offline)  
      
                        {  
      
                            AllListView.Items.Add((item + "在线").Remove(0, 14));  
      
                        }  
      
                        //                    if(contact.Status == MSNStatus.Busy)  
      
                        //                    {  
      
                        //                        AllListView.Items.Add(item+"忙碌");  
      
                        //                    }  
      
                        //                    if(contact.Status == MSNStatus.Away)  
      
                        //                    {  
      
                        //                        AllListView.Items.Add(item+"离开");  
      
                        //                    }  
      
                        else  
      
                        {  
      
                            AllListView.Items.Add((item + "离线").Remove(0, 14));  
      
                        }  
      
      
      
                    }  
      
      
      
                }  
      
                catch (Exception ex)  
      
                {  
      
                    MessageBox.Show(ex.ToString());  
      
                }  
      
            }  
      
      
      
            private void button3_Click(object sender, EventArgs e)//用来断开连接  
      
            {  
      
                msn.CloseConnection();  
      
            }  
      
        }  
      
    }  
 

转自:http://blog.****.net/longqi293/archive/2008/06/24/2580923.aspx