开发MSN插件http://blog.csdn.net/Red_angelX/archive/2006/12/26/1462781.aspx
2007-11-16 16:09
666 查看
MSN8.0开放了一些接口,使得我们能很方便的再它限定的范围内进行插件开发操作.
开发环境:VS 2005 .NET 2.0 MSN 8.0
再MSN安装目录下有个MessengerClient.dll的文件,要建立插件就要引用这个东西
注册表 SoftWare/MicroSoft/MSNMessager下新建一个DWORD:AddInFeatureEnabled值为1 启用插件功能
新建一个工程,引用MessengerClient.dll,可以看到内部的一些构造有个IMessagerAddIN的通用接口,我们写插件就扩展这个接口,重写里面的函数void Initialize(Microsoft.Messenger.MessengerClient messenger).
里面的事件和方法不多,事件也就是收到消息,发送消息,状态改变事件,方法呢,就是发文字,发闪屏一些的,想来想去,MS给我们这个框架接口除了能让我们写机器人Robot聊天,还能干什么-_-#!!!
DLL里面操作限制也很严格,不能访问本地文件,不能用MemoryStream分配内存...,要想自己画个图,只能用GDI+画.....
本来想写个自动换头像插件的,结果发现接口没提供这个东西...,不过还是把一个最简单的Sample的例子放出来,依照这个架构扩展自己的插件就可以了
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using Microsoft.Messenger;
namespace Red_angelX.MSNPlusIn
...{
/**//// <summary>
/// MSN头像自动更换插件
///
/// @Author: Red_angelX
/// </summary>
public class AutoChangeFace : IMessengerAddIn
...{
MessengerClient msn;
public void Initialize(MessengerClient messager)
...{
msn = messager;
msn.AddInProperties.Creator = "Red_angelX";
msn.AddInProperties.Description = "CopyRight (C) 2006-2009 Red_angelX";
msn.AddInProperties.FriendlyName = "头像自动更换插件";
msn.AddInProperties.Url = new Uri("http://blog.csdn.net/Red_angelX");
msn.AddInProperties.Status = UserStatus.Online;
msn.AddInProperties.UserTile = RandImage();
}
private Image RandImage()
...{
//Font ft = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
Bitmap bm = new Bitmap(48, 48);
Graphics g = Graphics.FromImage(bm);
g.Clear(Color.Black);
g.DrawString("Red", new Font("", 16, FontStyle.Italic), Brushes.Red, 0, 10);
return bm;
}
}
}
再MSN菜单的工具->选项->加载项里面加载这个DLL,MSN对插件的文件名也有要求,那就是NAMESPACE+CLASS+DLL,也就是我这个DLL必须命民为:Red_angelX.MSNPlusIn.AutoChangeFace.dll才能正常试用,如果这些接口能实现什么有意思的功能而不是聊天机器人的话,那多令人兴奋-_-#
开发环境:VS 2005 .NET 2.0 MSN 8.0
再MSN安装目录下有个MessengerClient.dll的文件,要建立插件就要引用这个东西
注册表 SoftWare/MicroSoft/MSNMessager下新建一个DWORD:AddInFeatureEnabled值为1 启用插件功能
新建一个工程,引用MessengerClient.dll,可以看到内部的一些构造有个IMessagerAddIN的通用接口,我们写插件就扩展这个接口,重写里面的函数void Initialize(Microsoft.Messenger.MessengerClient messenger).
里面的事件和方法不多,事件也就是收到消息,发送消息,状态改变事件,方法呢,就是发文字,发闪屏一些的,想来想去,MS给我们这个框架接口除了能让我们写机器人Robot聊天,还能干什么-_-#!!!
DLL里面操作限制也很严格,不能访问本地文件,不能用MemoryStream分配内存...,要想自己画个图,只能用GDI+画.....
本来想写个自动换头像插件的,结果发现接口没提供这个东西...,不过还是把一个最简单的Sample的例子放出来,依照这个架构扩展自己的插件就可以了
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using Microsoft.Messenger;
namespace Red_angelX.MSNPlusIn
...{
/**//// <summary>
/// MSN头像自动更换插件
///
/// @Author: Red_angelX
/// </summary>
public class AutoChangeFace : IMessengerAddIn
...{
MessengerClient msn;
public void Initialize(MessengerClient messager)
...{
msn = messager;
msn.AddInProperties.Creator = "Red_angelX";
msn.AddInProperties.Description = "CopyRight (C) 2006-2009 Red_angelX";
msn.AddInProperties.FriendlyName = "头像自动更换插件";
msn.AddInProperties.Url = new Uri("http://blog.csdn.net/Red_angelX");
msn.AddInProperties.Status = UserStatus.Online;
msn.AddInProperties.UserTile = RandImage();
}
private Image RandImage()
...{
//Font ft = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
Bitmap bm = new Bitmap(48, 48);
Graphics g = Graphics.FromImage(bm);
g.Clear(Color.Black);
g.DrawString("Red", new Font("", 16, FontStyle.Italic), Brushes.Red, 0, 10);
return bm;
}
}
}
再MSN菜单的工具->选项->加载项里面加载这个DLL,MSN对插件的文件名也有要求,那就是NAMESPACE+CLASS+DLL,也就是我这个DLL必须命民为:Red_angelX.MSNPlusIn.AutoChangeFace.dll才能正常试用,如果这些接口能实现什么有意思的功能而不是聊天机器人的话,那多令人兴奋-_-#
相关文章推荐
- WinCE中nandflash驱动开发介绍(转自http://blog.csdn.net/nanjianhui/archive/2008/03/16/2187206.aspx)
- group、grouping、rollup、cube的用法和区别(本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/junmail/archive/2006/12/26/1463132.aspx)
- ubuntu找不到上下边栏(面板) -- ubuntu gnome panel lost has recovered 转自:http://blog.csdn.net/yangxinle137/archive/2010/09/26/5908225.aspx
- postgresql运维命令简记 转自:http://blog.csdn.net/hitzhang/archive/2010/09/16/5888028.aspx
- SQL Server临时表(转) (转自:http://blog.csdn.net/zh520/archive/2009/04/17/4087943.aspx)
- 转:超级实用且不花哨的js代码大全(http://blog.csdn.net/panxuan/archive/2007/11/26/1902826.aspx)
- window.event(转自:http://blog.csdn.net/cnkiminzhuhu/archive/2008/02/22/2112408.aspx)
- http://blog.csdn.net/xiaominghimi/archive/2010/12/21/6090575.aspx
- windows 内存管理4 整理 (堆) http://blog.csdn.net/yaosan/archive/2006/09/10/1203851.aspx
- Subversion服务器搭建(转自:http://blog.csdn.net/ladofwind/archive/2008/02/17/2100200.aspx)
- http://blog.csdn.net/KBUG/archive/2006/10/30/1357009.aspx
- 动态连接库入门(转载自光头的学习文档http://blog.csdn.net/yuguanglou/archive/2004/11/10/175879.aspx)
- myeclipse6.0.1注册源码(转自:http://blog.csdn.net/brucemiao/archive/2007/10/26/1844446.aspx)
- [转]我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp) [http://blog.csdn.net/yefanqiu/archive/2007/07/19/1698480.aspx]
- 摘自CSDNhttp://blog.csdn.net/gnuhpc/archive/2009/11/13/4808405.aspx
- http://blog.csdn.net/tsun7263/archive/2009/10/20/4705006.aspx
- http://blog.csdn.net/netjxz/archive/2007/10/28/1852343.aspx
- Android开发指南-框架主题-资源和资产 (转http://blog.csdn.net/iefreer/archive/2009/09/06/4526004.aspx)
- http://blog.csdn.net/ezerg/archive/2004/10/24/149278.aspx
- Silverlight的开发工具 转http://blog.csdn.net/dotnetwalker/archive/2007/10/24/1841847.aspx