zoukankan      html  css  js  c++  java
  • 如何使用DOTMSN开发简单的MSN机器人示例(附示例源码)

    由于这个需要把自己的password暴露给sp,所以就使用DOTMSN来避免这个问题!
    下载地址:
    http://www.xihsolutions.net/dotmsn/download.html

    趁着五一休息就看着他的example做拉一个简单的msn机器人.
    效果图:


    他的功能弱弱的,但是基本实现拉简单的需求!
    功能描述已经实现代码(简单描述):
    1.登陆

    messenger = new Messenger();
    messenger.Connect(user.Text, pwd.Text);

    2.显示您的好友(在线和离线等状态)

    //显示所有在线人
            private void ShowAll()
            {
                
    try
                {   
                    messenger.SetStatus(MSNStatus.Online);
                    AllListView.Clear();
                    
    foreach(Contact contact in messenger.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());
                }
            }

    3.发送定制消息

    我的定制消息是当您打开并要跟我对话时,我会把我博客上的最新文章标题和连接发送给您.(如效果图)

    4.接受消息,根据消息内容判断,并返发相应的信息

    比如当用户发送给我的消息中包含某个关键词,如overred,我需要我的机器人自动给他发送什么消息:

    private void ReadMsg(Conversation sender, DotMSN.MessageEventArgs e)
            {  
                
    //string content;
                string input = e.Message.Text;
                
    if(input.IndexOf("red")>0)
                {
                    
    string content="overred 欢迎您光临他的blog:"+"\r\n"+"http://overred.cnblogs.com";
                    sender.SendMessage(content);
                }

                
    else if(input.StartsWith("H"))
                {
                    
    string content="我很笨,很多功能还在开发哦"+"\r\n"+"http://overred.cnblogs.com";
                    sender.SendMessage(content);
                }
                
    else
                {
                    
    string content="你好啊,我不知道你说的是什么啊,有什么事情请输入H";
                    sender.SendMessage(content);
                }
                
            }

    当您输入的消息中包含red这个关键词,他的自动回复消息是:
    overred 欢迎您光临他的blog:
    http://overred.cnblogs.com
    (这个可以跟您的数据库关联起来,把一些定制消息保存于数据库)
    关于这个消息是如何触发他是通过委托机制实现的,实现起来非常简单.(请下载源代码)

    示例代码下载地址:
    https://files.cnblogs.com/overred/DotMsnDemo.rar
  • 相关阅读:
    简化SpringBoot框架打包体积
    深究1.8版本HashMap源码
    一次面试题,将 字符串 保存在 Byte 数组中
    记一次linux磁盘清理
    Alibaba Cloud Toolkit 使用心得(IDEA版)
    Mybatis 一对多分页踩坑 对collection的分析
    MySQL中update修改数据与原数据相同会再次执行吗?
    与 MySQL 因“CST” 时区协商误解导致时间差了13 小时
    Druid数据源
    mybatis自动生成代码 mybatis-generator
  • 原文地址:https://www.cnblogs.com/top5/p/1767006.html
Copyright © 2011-2022 走看看