在前面的两篇文章中,我们讲了如何定制联系人的在线状态,如何定制web 标签页,是不是对OC2007 的魔力有所感触了呢?其实,这只是一个引言,一道开胃菜而已,后面还有更多的大餐等着你呢?今天,我们就一起来谈谈,如何定制OC2007的菜单命令?
OC2007中,有三种类型的菜单:
工具栏菜单(The Tools menu)
会话窗口的动作菜单(The Actions menu off the Conversation window)
联系人窗口右键菜单(The right-click menu off the Contact List)
在这些菜单列表中,都可以扩充我们的自定义菜单项。
在OC2007 中,扩展菜单项,比扩展web 标签页,要容易一些,只要在注册表中定义清楚菜单项的各项属性就可以正常运行。如下代码所示:
[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 |
会话类型。 |
ExtensibleMenu |
REG_SZ |
应用程序将会在哪些菜单上显示: 多个菜单项目之间用分号(“;”)分隔。 |
菜单说明
键名称(Key) | 说明 |
MainWindowActions | 主窗口菜单的[工具]工菜单下 |
MainWindowRightClick | OC主窗口联系人[右键]菜单 |
ConversationWindowActions | 对话窗口菜单的[操作]菜单下 |
ConversationWindowContextual | 对话窗口的[发送文件]菜单 |
ConversationWindowRightClick | 对话窗口,联系人列表[右键]菜单 |
定义完成后,重启OC,就可以达到如图所示的效果了。