给msn 添加addin, 制作msn机器人
HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\AddInFeatureEnabled DWORD 1
3。工程中添加引用: C:\Program Files\MSN Messenger and choose 'MessengerClient.dll‘
4。在自动生成的class1.cs中添加引用:'using Microsoft.Messenger'
5。并设置Class1.cs继承于IMessengerAddIn
6。添加代码到Class1中。
MessengerClient m_client;
// 初始化
void IMessengerAddIn.Initialize(MessengerClient client)
{
m_client = client;
// 设置插件的属性
m_client.AddInProperties.FriendlyName = "SmartTalker";
m_client.AddInProperties.PersonalStatusMessage = "Talk to me!";
// 当接收到消息时触发事件
m_client.IncomingTextMessage +=
new EventHandler<IncomingTextMessageEventArgs> (this.OnIncomingMessage);
}
/ / 处理事件,发送一条自定义消息给发送人
public void OnIncomingMessage(object sender,
IncomingTextMessageEventArgs args)
{
m_client.SendTextMessage("Hello " +
args.UserFrom.FriendlyName +
". Check back later and maybe I'll say something more interesting.",
args.UserFrom);
}
7。在工程的属性窗口中, 修改生成的DLL(程序集)名称为:工程名称.Class1DLL的名称必须与继承IMessengerAddIn的类的全称一致, 即:" 命名空间.类名.dll", 否则在MSN中加载时将报错.
8。编译之后在"加载项"中选择这个生成的DLL即可。
9。在MSN的状态下拉框中会发现“启用Smart Talker" 菜单项,选中之后。任何人发MSN消息过来即会被addin处理。
扩充:
上面只是一个简单的演示,你可以根据发送人的名称,单独处理,也可以从DB中取数据返回一些内容。
另外,如果在addin类中调用了web serivice,则无法加载此DLL,没找到原因,看来还是使用dotmsn开发方便.
ref:
http://blogs.msdn.com/katieblanch/archive/2006/05/11/595765.aspx
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlive/html/messengeraddin_sdk.asp