3

在我正在构建的 VB 应用程序中,我需要启动 Outlook。显然,在每台计算机上,通往 Outlook 的路径都不相同。因此,在Shell("path") 之前,我需要知道如何在用户计算机上找到Outlook 的路径。我该怎么做?

4

6 回答 6

4

通常 Outlook 安装到环境路径中,因此您可以使用:

 Process.Start("Outlook.exe")
于 2011-07-07T13:52:21.807 回答
3

首先,用户可能安装了多个版本的 Outlook。

你可以试试这个注册表路径:

HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE\Path

...为我工作!

顺便说一句,如果您要发送电子邮件等,您可以运行命令行,mailto:address@here.com-查看mailto:协议。它将启动任何电子邮件客户端。

于 2011-07-07T13:52:02.517 回答
2

如果您只是想通过 Outlook(或任何默认电子邮件客户端)发送邮件,您总是可以只使用 shell mailto:name@host.com,这将创建一个新的邮件消息,主题行中包含电子邮件。您还可以使用 HTML 电子邮件外壳附加其他变量。

否则...

您可以检查是否安装了 Microsoft Office,并通过注册表获取路径。然后,您可以导航到 Outlook 目录,例如

Sub CheckOfficeXPInstalled()
   InstallRoot = System.PrivateProfileString("", _
 "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Common\InstallRoot", _
 "Path")
   If InstallRoot <> "" Then
     MsgBox "An Office XP Family Product is installed at " & InstallRoot
   End If
End Sub

请参阅如何以编程方式确定是否安装了 Microsoft Office

于 2011-07-07T13:51:54.353 回答
1

您不会通过查找它的 exe 来启动 Outlook。

您通过创建它来启动它。

Dim o As Object = CreateObject("Outlook.Application")
o.Visible = True

(需要Option Strict Off

于 2011-07-07T13:54:34.950 回答
1

这取决于您使用的 Office 版本,但对于 64 位 Windows 上的 Office 2010,Microsoft Office 安装根文件夹保存在Path注册表项下的值中HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Outlook\InstallRoot。对于 32 位 Windows,删除Wow6432Node. OUTLOOK.EXE位于此注册表值指定的文件夹中。

于 2011-07-07T13:54:42.980 回答
0

我认为.net 环境变量之一将指向默认程序文件目录。但是,如果用户安装在任何地方,您可能只需要使用FileSystemObject 对象并在文件系统中运行以查找 outlook.exe。

于 2011-07-07T13:51:15.960 回答