-
c#开发MSN插件程序聊天机器人
互联网上经常见到一些利用MSN开发的个性软件,比如说聊天机器人,事务提醒阿等等。其实用C#开发MSN插件程序(比如聊天机器人),常见实现有以下两种开发思路:
1、直接调用MSN远程服务,Net开发环境下最出名的要算DotMSN开发库(开源)。 DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN Messenger就可以使用DotMSN和MSN Messenger服务通信.DotMSN是C#编写的,所以.NET环境支持的语言都能够使用.DotMSN类库使用简单而且实现方便。它灵活,坚固,轻量级利于整合到任何应用系统.使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能.
如果你的应用程序需要和Messenger服务通信,DotMSN是一个不错的工具.
免费网页模版下载http://www.it55.com
下面这张图可以使你了解DotMSN和你的应用程序之间的关系.
it55.com
2、调用MSN的组件开发,主要功能来自引用MessengerClient.dll。下面是摘自一网友的文章。共同学习一下:
http://www.it55.com/
开发MSN插件
MSN8.0开放了一些接口,使得我们能很方便的再它限定的范围内进行插件开发操作.
开发环境:VS 2005 .NET 2.0 MSN 8.0 精美商业网页模版下载http://www.it55.com
再MSN安装目录下有个MessengerClient.dll的文件,要建立插件就要引用这个东西 精美商业网页模版下载http://www.it55.com
注册表 SoftWareMicroSoftMSNMessager下新建一个DWORD:AddInFeatureEnabled值为1 启用插件功能 免费矢量图片素材下载http://www.it55.com
新建一个工程,引用MessengerClient.dll,可以看到内部的一些构造有个IMessagerAddIN的通用接口,我们写插件就扩展这个接口,重写里面的函数void Initialize(Microsoft.Messenger.MessengerClient messenger).
免费设计素材下载http://www.it55.com
里面的事件和方法不多,事件也就是收到消息,发送消息,状态改变事件,方法呢,就是发文字,发闪屏一些的,想来想去,MS给我们这个框架接口除了能让我们写机器人Robot聊天,还能干什么-_-#!!!
vd;k;l http://www.it55.com rdfg
DLL里面操作限制也很严格,不能访问本地文件,不能用MemoryStream分配内存...,要想自己画个图,只能用GDI+画..... 免费网页模版下载http://www.it55.com
本来想写个自动换头像插件的,结果发现接口没提供这个东西...,不过还是把一个最简单的Sample的例子放出来,依照这个架构扩展自己的插件就可以了 免费矢量图片素材下载http://www.it55.com
usingSystem;
usingSystem.Drawing;
usingSystem.Collections.Generic;
usingSystem.Text;
usingMicrosoft.Messenger;
IT资讯之家http://www.it55.com
namespaceRed_angelX.MSNPlusIn
...{
/**////<summary>
///MSN头像自动更换插件
///
///@Author:Red_angelX
///</summary>
publicclassAutoChangeFace:IMessengerAddIn
...{
MessengerClientmsn;
publicvoidInitialize(MessengerClientmessager)
...{
msn=messager;免费壁纸下载http://www.it55.com
msn.AddInProperties.Creator="Red_angelX";
msn.AddInProperties.Description="CopyRight(C)2006-2009Red_angelX";
msn.AddInProperties.FriendlyName="头像自动更换插件";
msn.AddInProperties.Url=newUri("http://blog.csdn.net/Red_angelX");
msn.AddInProperties.Status=UserStatus.Online;http://www.it55.com/
msn.AddInProperties.UserTile=RandImage();
}45398http://www.it55.comit55学习IT知识,享受IT生活4dfkjn
privateImageRandImage()
...{
//Fontft=newSystem.Drawing.Font("宋体",14.25F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,((System.Byte)(134)));
Bitmapbm=newBitmap(48,48);
Graphicsg=Graphics.FromImage(bm);
g.Clear(Color.Black);
g.DrawString("Red",newFont("",16,FontStyle.Italic),Brushes.Red,0,10);
returnbm;
}
}
}
再MSN菜单的工具->选项->加载项里面加载这个DLL,MSN对插件的文件名也有要求,那就是NAMESPACE+CLASS+DLL,也就是我这个DLL必须命民为:Red_angelX.MSNPlusIn.AutoChangeFace.dll才能正常试用,如果这些接口能实现什么有意思的功能而不是聊天机器人的话,那多令人兴奋
新建一个工程,引用MessengerClient.dll,可以看到内部的一些构造有个IMessagerAddIN的通用接口,我们写插件就扩展这个接口,重写里面的函数void Initialize(Microsoft.Messenger.MessengerClient messenger).
免费设计素材下载http://www.it55.com
里面的事件和方法不多,事件也就是收到消息,发送消息,状态改变事件,方法呢,就是发文字,发闪屏一些的,想来想去,MS给我们这个框架接口除了能让我们写机器人Robot聊天,还能干什么-_-#!!!
vd;k;l http://www.it55.com rdfg
DLL里面操作限制也很严格,不能访问本地文件,不能用MemoryStream分配内存...,要想自己画个图,只能用GDI+画..... 免费网页模版下载http://www.it55.com
本来想写个自动换头像插件的,结果发现接口没提供这个东西...,不过还是把一个最简单的Sample的例子放出来,依照这个架构扩展自己的插件就可以了 免费矢量图片素材下载http://www.it55.com
usingSystem;
usingSystem.Drawing;
usingSystem.Collections.Generic;
usingSystem.Text;
usingMicrosoft.Messenger;
IT资讯之家http://www.it55.com
namespaceRed_angelX.MSNPlusIn
...{
/**////<summary>
///MSN头像自动更换插件
///
///@Author:Red_angelX
///</summary>
publicclassAutoChangeFace:IMessengerAddIn
...{
MessengerClientmsn;
publicvoidInitialize(MessengerClientmessager)
...{
msn=messager;免费壁纸下载http://www.it55.com
msn.AddInProperties.Creator="Red_angelX";
msn.AddInProperties.Description="CopyRight(C)2006-2009Red_angelX";
msn.AddInProperties.FriendlyName="头像自动更换插件";
msn.AddInProperties.Url=newUri("http://blog.csdn.net/Red_angelX");
msn.AddInProperties.Status=UserStatus.Online;http://www.it55.com/
msn.AddInProperties.UserTile=RandImage();
}45398http://www.it55.comit55学习IT知识,享受IT生活4dfkjn
privateImageRandImage()
...{
//Fontft=newSystem.Drawing.Font("宋体",14.25F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,((System.Byte)(134)));
Bitmapbm=newBitmap(48,48);
Graphicsg=Graphics.FromImage(bm);
g.Clear(Color.Black);
g.DrawString("Red",newFont("",16,FontStyle.Italic),Brushes.Red,0,10);
returnbm;
}
}
}
再MSN菜单的工具->选项->加载项里面加载这个DLL,MSN对插件的文件名也有要求,那就是NAMESPACE+CLASS+DLL,也就是我这个DLL必须命民为:Red_angelX.MSNPlusIn.AutoChangeFace.dll才能正常试用,如果这些接口能实现什么有意思的功能而不是聊天机器人的话,那多令人兴奋