给msn 添加addin, 制作msn机器人

1。修改注册表,添加如下一项,(如果不修改,则在‘工具’-》‘选项’中不会有“加载项”这个选项。

HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\AddInFeatureEnabled   DWORD   1

2。添加一个vs2005中的class library工程。
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(程序集)名称为:工程名称.Class1
    DLL的名称必须与继承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
posted @ 2006-11-24 15:59  margiex  阅读(2163)  评论(14编辑  收藏  举报