65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.45/5 (7投票s)

2008 年 8 月 4 日

CPOL

3分钟阅读

viewsIcon

54814

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>

我们的自定义页面由包含 headbody 标签的 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 页面替换为我们的自定义页面。
  • 指定页面位置并勾选显示页面的复选框。

properties.gif

请注意,上面屏幕截图中的“地址”文本框对应于 MAPIFolder 类(Outlook 2007 中的 Folder)的 WebViewUrl 属性。 accordingly,标记为“为此文件夹默认显示主页”的复选框对应于 WebViewOn 属性。这些属性允许您即时为任何 Outlook 文件夹设置 HTML 页面。例如,您可以用自定义页面替换 Outlook Today 页面。如果您使用这些属性,请记住 Outlook 2002 有一个由 Microsoft 确认的众所周知的错误:当您设置 WebViewUrl 时,页面将在用户切换到另一个文件夹,然后切换回具有主页的文件夹后显示(有关详细信息,请参阅 Microsoft 网站)。

这是页面

vb_script.gif

此时,您可以朝着以下方向发展

  • 学习 HTML。
  • 和往常一样,Google 是一个好帮手:只需搜索HTML 教程

  • 学习 VBScript。
  • 这是一份强烈推荐的指南:MSDN

但是,Outlook Today 可以显示有关任务、电子邮件/消息和约会/会议的一些信息。要获取这些数据以及有关联系人、便笺和其他 Outlook 项目的信息,您需要深入研究 Outlook 对象模型

  • 打开 Outlook
  • 在菜单中选择“工具” | “宏” | “Visual Basic 编辑器”或按 Alt+F11
  • 在 VB IDE 中,在菜单中选择“视图” | “对象浏览器”或按 F2

vba_reference.gif

Application 是最重要的 Outlook 类。它提供类型为 NameSpaceSession 属性。NameSpace 类包含 Folder。每个 Folder(Outlook 2007 中的 Folder 类型,Outlook 2000-2003 中的 MAPIFolder)包含 Item 和其他 Folder。每个 Item 都提供一个 Class 属性,其值为唯一标识每个项目类型的常量:MailItemTaskItemContactItem 等。要获取有关类或类成员的帮助,只需按 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 中执行相同的操作

first_try.gif

如您所见,这很简单。

© . All rights reserved.