使用DotMSN 2.0开发MSN机器人

本文介绍了一个使用DotMSN开发包实现的MSN机器人小程序。该程序能够自动响应特定消息,并展示如何连接MSN服务器、同步联系人列表及发送消息等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

    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.youkuaiyun.com/longqi293/archive/2008/06/24/2580923.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值