当前位置: 首页 > news >正文

给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

相关文章:

  • SAP-财务-统驭科目
  • 成长路上
  • 轻松为Windows系统快速配置多个网关
  • 正在加载页面loading的制作
  • [原创]PHP重定向三种方法
  • 新年----我一个人过
  • Request.UrlReferrer详解
  • 一个简单的HttpListener服务结构
  • javascript学习与实践(1)
  • 大型网站数据库优化和故障跟踪与排查(下篇)
  • 又到日本
  • 系统启动 Verifying DMI pool Data问题
  • ASP.NET 档案属性概览
  • 程序员的进化--从学生到首席执行官(转载)
  • About My Really Opinion (To speacial person )
  • [译] 怎样写一个基础的编译器
  • [译]如何构建服务器端web组件,为何要构建?
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS魔法堂:Absolute Positioning就这个样
  • ES6之路之模块详解
  • go语言学习初探(一)
  • HTML-表单
  • input的行数自动增减
  • jquery ajax学习笔记
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • JWT究竟是什么呢?
  • react-native 安卓真机环境搭建
  • SpringBoot几种定时任务的实现方式
  • vuex 笔记整理
  • 测试如何在敏捷团队中工作?
  • 复习Javascript专题(四):js中的深浅拷贝
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 理解在java “”i=i++;”所发生的事情
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 判断客户端类型,Android,iOS,PC
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​linux启动进程的方式
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (6)添加vue-cookie
  • (9)STL算法之逆转旋转
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (笔试题)分解质因式
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (简单) HDU 2612 Find a way,BFS。
  • (六)软件测试分工