微软 Windows Live Messenger 8.0 开放了其 add-ins 开发接口,尽管功能有限,有些实验性质,但我们依然可以做很多事情。诸如自动回复、消息加密、MSN Mini 群等等。
运行/开发环境:
1. Windows Live Messenger 8.0
2. Microsoft .NET Framework 2.0
3. Visual Studio.NET 2005 (可选)
安装 Messenger 后(最好不要使用绿色版本,可能会出错。),你会在其安装目录(C:\Program Files\MSN Messenger)中找到一个名为 "MessengerClient.dll" 的文件,这就是我们需要的。创建一个 Class Library 项目,引用该文件,在VS2005解决方案资源管理器中双击该引用名称打开对象浏览器,你就能找到我们的目标——IMessengerAddIn。
public interface IMessengerAddIn
{
void Initialize(MessengerClient messenger);
}
IMessengerAddIn 接口非常简单,我们要开发的 add-ins 必须实现该接口。Messenger 通过调用 Initialize() 传入 MessengerClient 对象并初始化 add-ins。
相关类型信息
public sealed class MessengerClient : MarshalByRefObject, IPlugInNotifyInternal, IDisposable
{
// 接收到消息时触发
public event EventHandler<IncomingTextMessageEventArgs> IncomingTextMessage;
// 发送消息前触发
public event EventHandler<OutgoingTextMessageEventArgs> OutgoingTextMessage;
// 显示设置对话框时触发
public event EventHandler ShowOptionsDialog;
// 关闭 Messenger 时触发
public event EventHandler Shutdown;
// 好友(buddy)或者本地用户(local user)状态发生改变时触发
public event EventHandler<StatusChangedEventArgs> StatusChanged;
// 发送动作消息(前面不会添加"某某人说"字样),如 SendActionMessage("小机器人眼睛乱转...", args.UserFrom);
public void SendActionMessage(string actionText, User userTo);
// 发送闪屏
public void SendNudgeMessage(User userTo);
// 发送文本消息
public void SendTextMessage(string text, User userTo);
// Add-ins 信息
public AddInProperties AddInProperties { get; set; }
// 本地用户信息
public User LocalUser { get; }
// Add-ins 用来保存状态信息的属性。该信息保存到注册表,可在下次启动时读取。
public string SavedState { get; set; }
}
public sealed class User
{
// 获取用户所在组。(一般用来获取好友所在的组,对本地用户没意义。)
public string[] GetGroupNames();
// 登录所用的 Email 账号。
public string Email { get; }
// 用户名称
public string FriendlyName { get; }
// 个人状态消息(就是在线状态下面你输入的那行用来搞怪的文字。:-) )
public string PersonalStatusMessage { get; }
// 在线状态
public UserStatus Status { get; }
// 唯一用户编号
public string UniqueId { get; }
}
public class AddInProperties
{
// 作者
public string Creator { get; set; }
// 详细说明
public string Description { get; set; }
// 名称
public string FriendlyName { get; set; }
// 启用 Add-ins 时,设置本地用户个人状态消息。
public string PersonalStatusMessage { get; set; }
// 启用 Add-ins 时,设置本地用户在线状态。
public UserStatus Status { get; set; }
// 暂时无用。
public Uri Url { get; set; }
// 设置本地用户显示图片。
public Image UserTile { get; set; }
}
---------------------
在开始编写我们自己的 Add-ins 之前,还有些工作要做。
1. Messenger Add-ins 缺省并没有被启用,我们需要修改注册表打开。在 "HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger" 中新建 "AddInFeatureEnabled DWORD 1"。再次启动 Messenger,登录后你会在选项对话框中看到 "加载项",这就是装载 Add-ins 的地方。
2. Add-ins 对文件名有严格限制,文件名必须是实现 IMessengerAddIn 接口类的全限定名(Namespace.ClassName.dll)。可以在项目属性对话框中修改程序集名称,使其符合该要求。
OK,我们开始编写我们自己的 Add-ins。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Messenger;
namespace MyMessenger
{
public class Bot : IMessengerAddIn
{
MessengerClient msn;
public void Initialize(MessengerClient messenger)
{
msn = messenger;
msn.AddInProperties.Creator = "Q.yuhen";
msn.AddInProperties.Description = "Copyright (c) RainTrail Studio. China 2006";
msn.AddInProperties.FriendlyName = "自动回复机器人";
msn.AddInProperties.Status = UserStatus.Away;
msn.IncomingTextMessage += new EventHandler<IncomingTextMessageEventArgs>(OnIncommingMessage);
}
public void OnIncommingMessage(object sender, IncomingTextMessageEventArgs args)
{
msn.SendTextMessage("[自动回复] 我暂时不在,有事请留言,我会尽快回复。", args.UserFrom);
}
}
}
编译该项目,获取程序集文件 MyMessenger.Bot.dll。接下来我们装载并进行测试。
1. 打开Messenger,登录。打开选项对话框,在装载项中单击 "添加至 Messenger (D)..." 按钮。
2. 在选择文件对话框中选择 MyMessenger.Bot.dll。
3. Add-ins 被成功装载。要启动 Add-ins 有两种方法,第一种就是装载项对话框中的自动运行,另外就是在状态菜单中启动。
4. 找个朋友给你发条消息试试看。
--------------------------
上面的例子虽然很简单,只要发挥你的想象力还是可以做出很多东西的。
更详细的信息请查看MSDN文档《
Messenger Add-In API》(英文)。
点击下载
分享到:
相关推荐
Windows Live Messenger(WLM)是微软开发的即时通讯软件,8.0版本之前称作MSN Messenger。符于Windows系统之中,是微软在线服务Windows Live的一部分,Windows Live Messenger包括MSN Messenger的全部功能,并再...
windows2008下的MSN8.5 直接运行SetUp文件
Windows Live Messenger(简称MSN Messenger)是一款由微软公司开发的即时通讯软件,它在早期的互联网时代深受用户喜爱,尤其是其9.0版本,引入了诸多新特性,提升了用户体验。然而,尽管官方版本已经非常完善,但...
- Windows Messenger (In Windows XP) - Yahoo Messenger - ICQ Lite 4.x/2003 - AOL Instant Messenger - AOL Instant Messenger/Netscape 7 - Trillian - Miranda - GAIM MessenPass只能够探测出Windows...
Windows Essentials 2012 包括:SkyDrive for Windows 应用, Windows Live Mail, Windows Live Family Safety, Windows Live Writer, Windows Live Messenger, Outlook Connector Pack 以及更新较多的 Windows Photo...
虽然MSNMessenger已经停止服务,但X-PopUp可能继承了其简洁、易用的特性,并试图在某种程度上填补MSN Messenger停服后留下的空白,为用户提供类似的服务体验。 总结来说,X-PopUp是一款注重用户体验的即时通讯工具...
2. **Windows Live Messenger**:作为即时通讯工具,开发者可以学习如何通过API集成Messenger,实现与用户的实时交互,如发送通知或提供客户服务。 3. **Windows Live Mail**:Windows Live Mail是微软提供的电子...
标题"Msn2009(live messenger) For Windows2003&2008(4628)"指的是微软的即时通讯软件MSN Messenger的2009版本,特别优化适用于Windows Server 2003和2008操作系统。MSN Messenger是微软推出的一款流行的即时通讯...
Windows Live Messenger是一款由微软公司开发的即时通讯软件,是Windows Live套件的一部分。MSN2009作为其一个版本,提供了丰富的聊天功能以及与其他Windows Live服务的集成。 随着用户需求的变化和技术的进步,有...
Window Live Messenger,通常简称为WLM或Windows Live Messenger,是微软公司推出的一款即时通讯软件,是MSN Messenger服务的后续版本。这款应用允许用户通过互联网发送文本消息、语音通话、视频聊天以及共享文件等...
【Laravel开发-laravel-messenger-mongo】 在Laravel框架中进行开发时,有时我们需要实现用户之间的消息交流功能。`laravel-messenger-mongo`是一个专门为Laravel设计的开源库,它提供了一个简单且灵活的方式来处理...
Windows Live Messenger 2009 是微软公司推出的一款即时通讯软件,特别针对Windows Server 2003操作系统进行了优化,使得在服务器环境下也能顺畅使用。MSN(Microsoft Network)是这款软件的服务品牌,允许用户通过...
**MSN Messenger**是一款由Microsoft开发的即时通讯工具,在全球尤其是中国有着广泛的用户基础。该工具不仅支持基本的文字聊天功能,还提供了语音对话、视频会议等丰富的即时交流方式,并允许用户查看联系人的在线...
众所周知MSN Shell仅能应用于低版本的MSN,而不适用于最新的live messanger 2012,很多人在误装了新版本的msn后,发现无法完全卸载,导致不能安装低版本的msn,这个工具能有有效地清除包括注册表信息在内的所有安装...
MSN Messenger的最新版本是Windows Live Messenger 9.0 MSN 9 是一种 Internet 软件,它基于 Microsoft 高级技术,可使您和您的家人更有效地利用 Web。MSN 9 是一种优秀的通信工具,使 Internet 浏览更加便捷,...
)Windows Live Messenger(msn)2011功能: • 重新设计的更为智能的联系人卡片让您可以获取更多信息,并且可以更方便地与您的朋友联系• 您的显示名称、状态和个性化信息可以与您漫游到任何一台计算机上• 更稳定的...
注意,在安装之前最好先把联系人... 后台结构改进 - 这个你无法从UI上看见- 改进登录,连接,语音和视频通信的效果- Windows Live Contacts Server - wlcomm.exe 将运行在后台,帮你刷新联系人信息和加快Messenger登录速度.
名称:All-in-One Messenger -------------------- 版本:4.5.0 作者:https://allinone.im/ 分类:社交通讯 -------------------- 概述:多合一Messenger是WhatsApp Web和其他全球Messenger的包装。它使您可以从...
《Windows Live Messenger_v1.1.1 for iPhone:多国语言版详解与应用》 Windows Live Messenger,简称WLM,是微软公司推出的一款即时通讯软件,它为用户提供了一个方便快捷的平台,进行文字聊天、语音通话、视频...
【Windows Live开发系列课程(2):Live Messenger API】是一门深入探讨如何利用Windows Live Messenger应用程序接口(API)进行软件开发的专业课程。该课程旨在帮助开发者掌握如何与Microsoft的即时通讯服务集成,...