2012-05-27 3 views
0

나는 사용자 안내서를 개발 한 프로그램을 가지고 있습니다. 이 사용자 가이드를 프로젝트 디렉토리에 배치했습니다. 사용자의 컴퓨터에서 Word의 사용자 가이드를 여는 MenuStrip Item을 만들었습니다. 나는 성공적으로 다음 코드를 사용하여이 작업을 수행 할 수 있었다 : 문제는동적 디렉토리에서 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라는 단어 문서를 사용자에게 제공하기로 결정한 이유는 무엇입니까? 단어가 설치되어 있지 않으면 어떻게 될까요? – Steve

+0

@Steve Word가 설치되어 있지 않으면 OpenOffice를 다운로드 할 수 있으며 .doc 및 .docx가 열립니다. 또는 2012 년을 알 수 있습니다. MS Office는 엄청나게 비쌉니다. : D – Phoenix

+0

물론 다른 가능성이 있지만이 방법으로 사용자는 문서를 편집 할 수 있습니다. 이 옵션이 수용 가능하거나 필요합니까? (보통 나는 문서에서 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