2012-05-27 42 views
0

我有一個程序,我開發了一個用戶指南。我已將此用戶指南放在項目目錄中。我創建了一個MenuStrip項目,通過它在用戶的機器上在Word中打開用戶指南。我能成功用下面的代碼來做到這一點:從動態目錄打開Word文檔VB.Net

Try 
     userGuide = MSWord.Documents.Open("C:Users\administrator\Documents\VisualStudio2010\Project3\UserGuide.doc") 

     MSWord.WindowState = Word.WdWindowState.wdWindowStateNormal 
     MSWord.Visible = True 
    Catch ex As Exception 
     MsgBox("An error has prevented the document from opening. The document may not be available." & vbCrLf & vbCrLf & _ 
       "Please try one of the following options:" & vbCrLf & _ 
       "- Check to see if the document is already open" & vbCrLf & _ 
       "- Restart the program") 
    End Try 

的問題是,用於打開該文件將不會在用戶的計算機上存在的路徑。這是一個獨立的系統,所以不能創建放置文檔的文件共享,因此不能編碼公共路徑。

有沒有一種方法來編碼動態路徑?也許是這樣的:

userGuide = MSWord.Documents.Open("%windir%\UserGuide.doc") 

謝謝!

+0

我很好奇。爲什麼你決定向用戶提供一個名爲UserGuide的文檔?如果他們沒有安裝Word,會發生什麼? – Steve

+0

@Steve如果他們沒有安裝Word,他們可以下載OpenOffice,它會打開.doc和.docx。或者他們可以意識到這是2012年,MS Office並不昂貴。 :D – Phoenix

+0

當然,還有其他的可能性,但這樣用戶可以編輯文檔。這是一個可以接受的選項嗎? (通常我從doc打印PDF)。 – Steve

回答

1

如果該文件將相對於應用程序的可執行文件的安裝路徑進行存儲,然後用path of the exe開始:

Dim path As String 
path = System.IO.Path.GetDirectoryName(_ 
     System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) 

Dim docPath as String; 

docPath = Path.Combine(path,"UserGuide.doc"); 
+0

這完全奏效。謝謝!! – Phoenix