如何使用DOTMSN开发简单的MSN机器人示例(附示例源码)
2006-07-21 17:06
656 查看
本文继续上篇:使用第三方SDK开发咱博客园自己的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 (这个可以跟您的数据库关联起来,把一些定制消息保存于数据库)
关于这个消息是如何触发他是通过委托机制实现的,实现起来非常简单.(请下载源代码)
示例代码下载地址:
http://www.cnblogs.com/Files/overred/DotMsnDemo.rar
说明:由于发送博客的rss内容,所以由于网络速度问题,可能导致对方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 (这个可以跟您的数据库关联起来,把一些定制消息保存于数据库)
关于这个消息是如何触发他是通过委托机制实现的,实现起来非常简单.(请下载源代码)
示例代码下载地址:
http://www.cnblogs.com/Files/overred/DotMsnDemo.rar
说明:由于发送博客的rss内容,所以由于网络速度问题,可能导致对方msn不能及时收到相应的消息!
剩下的大家去体验吧!
相关文章推荐
- 如何使用DOTMSN开发简单的MSN机器人示例(附示例源码)
- 如何使用DOTMSN开发简单的MSN机器人示例(附示例源码)
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)
- 使用第三方SDK开发咱博客园自己的MSN机器人(附示例源码)
- (转)【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 如何使用Eclipse开发Android源码
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(九)----使用PreviewLabs插件提速与完整的项目源码
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- WinForm"tableLayoutPanel和flowLayoutPanel的使用(附源码示例)" 之配餐系统的开发
- 如何使用Android Studio开发/调试Android源码
- (android 源码下开发应用程序) 如何在 Android 各 level ( 包含 user space 與 kernel space ) 使用dump call stack的方法
- IOS开发过程中如何简单快速使用storyboard(不需要考虑适配问题)
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- (译)如何使用cocos2d开发一个简单的iphone游戏:旋转炮塔。(第二部分)
- Android开发之RadioGroup的简单使用与监听示例
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- 如何使用Android Studio开发/调试Android源码
- ubuntu下使用golang、qml与ubuntu sdk开发桌面应用 (简单示例)