如何以 Outlook Today 风格编程创建 Outlook 主页






2.45/5 (7投票s)
Outlook Today 是一个自定义 Outlook 主页文件夹页面的示例。在本文中,您将学习如何使用 VBScript 和 .NET(VB、C#、C++)创建这样的页面。
引言
Outlook Today 是自定义 Outlook 主页文件夹页面的一个示例。在本文中,您将学习如何使用 VBScript 和 .NET(VB、C#、C++)创建这样的页面。
有两种方法可以自定义 Outlook Today
- 用户可以修改它;只需打开 Outlook 帮助(请参阅“帮助”菜单),然后在“搜索”字段中输入“自定义 Outlook Today”。
- 或者,如果您是开发人员,您可能希望以编程方式向 Outlook Today 添加一些功能。让我们深入研究一下。
Outlook Today 是一组 HTML 页面,它们使用 VBScript 来显示一些与 Outlook 相关的信息。如果打开“个人文件夹”的“属性”窗口并导航到“主页”选项卡,您会看到默认页面地址是:res://C:\Program Files\Microsoft Office\OFFICE11\1033\outlwvw.dll/outlook4.htm。
也就是说,第一个 Outlook Today 页面是从某些与 Outlook 相关的 DLL 的资源中显示的,这意味着 Outlook Today 没有源代码。
换句话说,开发人员只能 用自定义页面替换 Outlook Today。让我们创建一个这样的页面:打开记事本并复制/粘贴下面的文本
<html>
<head>
<title>VBScript: the first try</title>
</head>
<body>
</body>
我们的自定义页面由包含 head
和 body
标签的 HTML 标签组成。如您所见,该页面是空的。现在,让我们添加一个按钮
...
<body>
<input type="button" value="Go" onClick="greeting()"/>
</body>
...
按钮的标题是“Go”,当您单击按钮时,将调用 Greeting
函数。现在,让我们添加该函数
...
<head>
<script type="text/vbscript">
function greeting()
document.write("<p>Hello, developer!</p>")
end function
</script>
</head>
...
这个简单的函数会打印一个包含问候语的段落。现在,我们准备将页面集成到 Outlook 中
- 右键单击一个文件夹,然后在上下文菜单中选择“属性”。请注意,如果该文件夹是个人文件夹,则意味着我们将 Outlook Today 页面替换为我们的自定义页面。
- 指定页面位置并勾选显示页面的复选框。
请注意,上面屏幕截图中的“地址”文本框对应于 MAPIFolder
类(Outlook 2007 中的 Folder
)的 WebViewUrl
属性。 accordingly,标记为“为此文件夹默认显示主页”的复选框对应于 WebViewOn
属性。这些属性允许您即时为任何 Outlook 文件夹设置 HTML 页面。例如,您可以用自定义页面替换 Outlook Today 页面。如果您使用这些属性,请记住 Outlook 2002 有一个由 Microsoft 确认的众所周知的错误:当您设置 WebViewUrl
时,页面将在用户切换到另一个文件夹,然后切换回具有主页的文件夹后显示(有关详细信息,请参阅 Microsoft 网站)。
这是页面
此时,您可以朝着以下方向发展
- 学习 HTML。
- 学习 VBScript。
和往常一样,Google 是一个好帮手:只需搜索HTML 教程。
这是一份强烈推荐的指南:MSDN。
但是,Outlook Today 可以显示有关任务、电子邮件/消息和约会/会议的一些信息。要获取这些数据以及有关联系人、便笺和其他 Outlook 项目的信息,您需要深入研究 Outlook 对象模型
- 打开 Outlook
- 在菜单中选择“工具” | “宏” | “Visual Basic 编辑器”或按 Alt+F11
- 在 VB IDE 中,在菜单中选择“视图” | “对象浏览器”或按 F2
Application
是最重要的 Outlook 类。它提供类型为 NameSpace
的 Session
属性。NameSpace
类包含 Folder
。每个 Folder
(Outlook 2007 中的 Folder
类型,Outlook 2000-2003 中的 MAPIFolder
)包含 Item
和其他 Folder
。每个 Item
都提供一个 Class
属性,其值为唯一标识每个项目类型的常量:MailItem
、TaskItem
、ContactItem
等。要获取有关类或类成员的帮助,只需按 F1。在阅读帮助时,请注意类或类成员在 VBScript 中的可用性和其他使用方面的注意事项。例如,Outlook 事件在 VBScript 中不可用。下面的示例函数使用 Outlook 对象模型来演示如何应用上述信息。该函数列出了当前 Outlook 会话中的顶级文件夹
function greeting()
on error resume next
dim OutlookApp
on error resume next
set OutlookApp = GetObject(, "Outlook.Application")
if OutlookApp is Nothing then
document.write("<p>Hello, developer!</p>")
exit function
else
document.write("<p>Hello, Outlook developer!</p>")
end if
on error goto 0
dim folderCount
folderCount = OutlookApp.Session.Folders.Count
document.write("<p>There are " & folderCount & _
" top-level folders in this session. ")
document.write("Here they are:</p><ul>")
for i = 1 to folderCount
dim fldr
set fldr = OutlookApp.Session.Folders.Item(i)
document.write("<li>" & fldr.Name & "</li>")
next
document.write("</ul>")
document.title = "VBScript: the first try"
end function
当我在我的 Outlook 2003 中单击按钮时,该函数显示以下输出。您可以在 Outlook 2000、2002 (XP) 和 Outlook 2007 中执行相同的操作
如您所见,这很简单。