MSN Messenger 6.0标签的自定义与开发

MSN Messenger 6.0标签的自定义与开发

最近,Microsoft 向测试人员发布了 MSN Messenger 6.0 Beta 测试版,由于这个版本中增加了很多激动人心的功能,如:更漂亮的界面,更多的表情符号,可设置个人头像,聊天窗口的背景图片支持,P2P功能支持,联机游戏等,在这个版本中增强了的标签功能,对于广大 MSN Messenger 爱好者来说,尤其带来了许多乐趣,本文将主要对 MSN Messenger 的标签的使用和开发进行探讨。

什么是 MSN Messenger 标签?

MSN Messenger 标签是对 MSN Messenger 功能的一种扩展,如图1所示。MSN Messenger 已经内置了许多功能扩展,如 MSN Alerts .NET My Services ,除此之外,还将 www.msn.com 提供的许多个性服务都集成到 MSN Messenger 里面了,如股票行情、新闻、旅游、汽车、购物、游戏等。

除了这些内置的标签之外,我们还可以增加自己特殊的标签,将常用的一些在线功能(阅读新闻、查看天气预报等)集成到 MSN Messenger 中,将其变为一个功能丰富而强大的客户端工具。笔者曾经见到过 Microsoft 演示新加坡政府的电子政务系统,就是将许多客户端的功能置入 MSN Messenger 的标签中,为工作人员提供了一个使用极其方便的工具。

(注:默认情况下,MSN Messenger 标签只有两个,要想显示全部内置标签,用户需要在 www.passport.net 登录,并在Member Services 中修改 Profile 文件,将自己的 Country/Region 修改为美国,或者直接下载此文件: http://www.china-actuary.com/temp/configcache.zip ,解开后覆盖原配置文件即可,原配置文件的路径在下文列出)

如何增加标签

MSN Messenger 中所有标签都是定义在一个 XML 配置文件中,这个文件位于 C:\Documents and Settings\[User]\Application Data\Microsoft\MSN Messenger\[Passport ID] 目录下,如果安装的是 MSN Messenger 6.0中文版,则可能位于 C:\Documents and Settings\[USER]\Application Data\Microsoft\MSN Messenger下面的目录名是一串数字的子目录中,文件名为 ConfigCache.xml(注: [User] 是登录 Windows 系统的用户名,Passport ID 是指登录 MSN Messenger 的ID,如 [email protected],另外,如果你的 Windows 系统安装在 C: 以外的其它驱动器,则上述路径要做相应改变)

打开这个 XML 文件,就可以看到在 \MsgrConfig\TabConfig\msntabdata 节点内就是所有标签的定义,现举例对其中的主要元素加以说明:

<tab>
  <image>res:money</image>
  <name>CNBC on MSN Money</name>
  <tooltip>CNBC on MSN Money</tooltip>
  <contenturl>http://moneycentral.msn.com/messenger/tab.aspx</contenturl>
<tab</tab>

了解了标签的定义方式后,我们就可以定义自己的标签了,考虑到 MSN Messenger 窗口的大小和 PocketPC Palm PDA 类似,所以适合 PDA 的网站置入到标签中比较合适。例如我们把新浪站点的 PDA版(http://pda.sina.com.cn)做成一个标签,则应定义如下一个 XML 结点:

<tab>
   <image>res:bell
</image>
   <name>SINA PDA
</name>
   <tooltip>SINA PDA Site
</tooltip>
   <contenturl>http://pda.sina.com.cn
</contenturl>
</tab>

然后将结点定义的全部文本插入到配置文件的 \MsgrConfig\TabConfig\msntabdata 节点里面,注销并重新登录 MSN Messenger ,则效果图2所示。

除此之外,在 PDA 上很受欢迎的 AvantGO 频道都可以作为标签内容的来源,在 http://www.avantgo.com 中注册登录后,会列出各种各样的频道及其 URL 地址,然后就可以自己的需要选择利用了。

如何开发标签

除了引用已有的站点,如AvantGO频道或PDA站点外,能不能制做自己的功能标签呢?答案是完全肯定的,可以看到,标签配置中的 ContentURL 既可以引用外部 URL 资源,也可以引用本地资源,最常用的就是引用本地的 HTML 文件。

利用 HTML 文件,你的所有与 HTML 有关的开发技术/技巧都能派上用场,如CSSHTML ComponentVBScript/JavaScriptJava AppletDHTMLActiveXMSXML(包括XMLHttp组件),XSLT等。如果是开发一个内容采集(如新闻或天气预报信息抓取)的标签,则一般要经过以下步骤:

1、寻找内容来源,此页面一般要求格式相对固定,如新浪的滚动新闻页面等

2、利用 MSXML 包中的 XMLHttp 对象来获取内容

3、在本地利于脚本结合 HTML DOM(文档对象模型)技术对获取的内容进行分析和过滤,取出有用内容

4、以适合的方式显示这些的内容,并可以结合 CSS 进行内容的格式化

另外,如果引用本地的 HTML 文件,则脚本安全性级别较低,对本地文件系统进行读写是允许的,因此开发一些具有高级特性的应用,如本地缓存内容,显示本计算机的某些信息(如 Outlook 的邮件,联系人列表等)。

下图是笔者开发的一个标签的实例,主要功能是查阅新闻、电视节目单、天气预报等,可以从 http://www.china-actuary.com/temp/rordown.asp 下载,通过阅读里面的内容和程序脚本来进一步了解如何开发标签。

除此之外,可以利于 Windows 系统和第三方丰富的组件和控件,尝试进行一些MSN Messenger 标签的高级开发,如利用 JMail 组件来读取 POP3 邮箱的内容或发送邮件;利用通讯网关发送手机短消息;利用 XML 解析器来读取和显示 RSS 内容;甚至可以通过 MSXML 中的 XMLHTTP 来读取 Hotmail/MSN 邮箱中的内容,使用 ADO 来存取数据库信息等,当然开发人员也可以将此功能延伸到企业应用开发中,如小组协作,日程安排等。

开发标签注意事项

1、图标的引用

标签的图标即可以采用内置的资源图标,也可以引用外部(URL形式,如 http://www.china-actuary.com/temp/news.png)的 PNG 文件(必须是32位色),图标大小为 32X32,也可以使用 ResHacker 等工具将自己的图标加入到 MSN Messenger 可执行文件 MsnMsgr.exe 中,然后使用 res:[ID] 的方式来引用。

2、界面开发

由于标签的内容显示在 MSN Messenger 窗口的内部,所以在界面开发时要注意以下原则:

1) 标签中元素的采用相对大小,而非绝对大小。这样当 MSN Messenger 窗口缩放的时候,里面的内容能够自适应地进行调整。此外如果可能,对超过窗口宽度的内容进行手工缩放(在笔者的例子里,对新闻中的图片进行了缩放,以便能够在任意大小的窗口都看到全图),从而避免出现水平滚动条。

2) 使用小字体,以显示更多内容

3) 使用元素的边框和间隔不要太大,不要采用较大的图片按钮

4) 使用简单控件

5) 尽量避免重新刷新整个页面

3、程序的开发与调试

可以使用常用的 HTML/VBScript/Jscript 开发工具,结合 Internet Explorere 进行测试,测试无误后再加入到 MSN Messenger 的标签中,要不然每次更改页面后都要重新登录 MSN Messenger ,无疑是一件很痛苦的事。

4、配置文件与标签图标

经常发现登录 MSN Messenger 后,除了最上面好友列表的标签外,其它标签到都不见了,此问题一般都是错误地修改 ConfigCache.xml 文件而使其成为一个不合法的 XML 文件导致的。所以在修改此文件后,最好使用 Internet Explorer 打开查看一下,以确认 XML 文件的格式无误。

另外,有时候即使不修改配置文件,标签也会“消失”,这是由于 MSN Messenger 自动更新配置文件而覆盖和自定义的标签,要防止此类情况,最好将配置文件中的过期设置元素的值改为0,即:0。

文章插图:

 

(本文发表于《电脑迷》杂志)

“MSN Messenger 6.0标签的自定义与开发”的一个回复

发表评论