2011-07-07 33 views
3

在我正在構建的VB應用程序中,我需要啓動Outlook。很顯然,在每臺電腦上Outlook的路徑都不一樣。因此,我需要知道如何在我的Shell(「路徑」)之前在用戶的計算機上找到Outlook的路徑。我將如何做到這一點?使用VB.NET查找應用程序的路徑

+0

糟糕,請原諒我錯誤的「關閉」投票。我太高興了。 –

+0

如果您想要使用您的應用訪問Outlook,請參閱http://stackoverflow.com/questions/6603287/references-in-microsoft-visual-studio-not-working。 – dbasnett

回答

0

我認爲其中一個.net environment variables會指向默認的程序文件目錄。但是,如果用戶在任何地方安裝,則可能只需使用FileSystemObject object並圍繞文件系統尋找outlook.exe。

+0

無需env。變量,有像GetSpecialFolder ... –

+0

@davide GetSpecialFolder看起來不錯 - http://msdn.microsoft.com/en-us/library/a72y2t1c(v=vs.85).aspx - 垃圾名稱,頭腦! – amelvin

2

如果您只是想通過Outlook(或任何默認的電子郵件客戶端)發送郵件,則始終可以使用shell mailto:[email protected],這將在主題行中創建一封包含電子郵件的新郵件消息。您還可以使用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 

How to programatically determine if Microsoft Office is installed

2

首先,用戶可能已經安裝了Outlook的多個版本。

你可以試試這個註冊表路徑:

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

...對我的作品!

如果您打算順便發送電子郵件等,您可以運行命令行mailto:[email protected] - 查看mailto:協議。它將啓動任何電子郵件客戶端。

4

通常的Outlook安裝到環境路徑,所以你可以只使用:

Process.Start("Outlook.exe") 
+0

+1比我的更好的解決方案。 –

1

你不找它的EXE勞克展望。

您可以通過創建它來啓動它。

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

(需要Option Strict Off

+0

這看起來有點泄漏。事後沒有清理工作嗎? –

+0

@Kieren假設您爲用戶啓動它,而不是真的。否則,「o.Close」和「Marshal」。ReleaseComObject的(○)'。 – GSerg

1

這取決於Office的版本你使用,但爲Office 2010在之下的Path值保持64位Windows中的Microsoft Office安裝根文件夾註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Outlook\InstallRoot。對於32位Windows,刪除Wow6432NodeOUTLOOK.EXE住在由此註冊表值指定的文件夾中。

相關問題