游子吟

致力于.Net,致力于企业信息化工程!
Harvest = Hope + Struggle

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  在前面的两篇文章中,我们讲了如何定制联系人的在线状态,如何定制web 标签页,是不是对OC2007 的魔力有所感触了呢?其实,这只是一个引言,一道开胃菜而已,后面还有更多的大餐等着你呢?今天,我们就一起来谈谈,如何定制OC2007的菜单命令?

  OC2007中,有三种类型的菜单:

  工具栏菜单(The Tools menu)

  会话窗口的动作菜单(The Actions menu off the Conversation window)

  联系人窗口右键菜单(The right-click menu off the Contact List)

在这些菜单列表中,都可以扩充我们的自定义菜单项。
  在OC2007 中,扩展菜单项,比扩展web 标签页,要容易一些,只要在注册表中定义清楚菜单项的各项属性就可以正常运行。如下代码所示:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Communicator\SessionManager\Apps\{27877e66-615c-4582-ab88-0cb2ca05d951}]
"Name"="发送短信"
"ExtensibleMenu"="ConversationWindowRightClick;MainWindowActions;MainWindowRightClick;ConversationWindowActions;ConversationWindowContextual"
"Path"="E:\\群发邮件\\SendNote\\SendNote.exe %user-id% %contact-id%"
"ApplicationInstallPath"="E:\\群发邮件\\SendNote\\SendNote.exe"
"SessionType"=dword:00000000
"ApplicationType"=dword:00000000


各注册键说明如下:

Name

Type

Data

Name

REG_SZ

菜单命令名称

ApplicationType

DWORD

应用程序类型:0:可执行文件;1:协议

ApplicationInstallPath

REG_SZ

ApplicationType = 0 时,应用程序的完整路径

Path

REG_SZ

应用程序的完整路径及其参数,缺省参数 %user-id% 和%contact-id%.

SessionType

DWORD

会话类型。
0:本地会话,应用程序只在本地启动。
1:双方会话(缺省)
2:多方会话

ExtensibleMenu

REG_SZ

应用程序将会在哪些菜单上显示:
  MainWindowActions
  MainWindowRightClick
  ConversationWindowActions
  ConversationWindowContextual
  ConversationWindowRightClick


缺省MainWindowRightClickConversationWindowContextual 

多个菜单项目之间用分号(“;”)分隔。


菜单说明

键名称(Key) 说明
MainWindowActions 主窗口菜单的[工具]工菜单下
MainWindowRightClick OC主窗口联系人[右键]菜单
ConversationWindowActions 对话窗口菜单的[操作]菜单下
ConversationWindowContextual 对话窗口的[发送文件]菜单
ConversationWindowRightClick 对话窗口,联系人列表[右键]菜单

定义完成后,重启OC,就可以达到如图所示的效果了。


 

posted on 2008-01-22 08:12  巴山游子  阅读(3227)  评论(8编辑  收藏  举报