使用VB.NET查找应用程序的路径

时间:2011-07-07 13:48:18

标签: .net vb.net vb.net-2010

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

6 个答案:

答案 0 :(得分:4)

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

 Process.Start("Outlook.exe")

答案 1 :(得分:2)

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

否则...

您可以检查是否安装了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

请参阅How to programatically determine if Microsoft Office is installed

答案 2 :(得分:2)

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

您可以尝试以下注册表路径:

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

......适合我!

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

答案 3 :(得分:1)

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

您可以通过创建它来启动它。

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

(需要Option Strict Off

答案 4 :(得分:1)

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

答案 5 :(得分:0)

我认为其中一个.net environment variables将指向默认的程序文件目录。但是,如果用户安装在任何地方,您可能只需使用FileSystemObject object并在文件系统中运行以查找outlook.exe。