2012-10-13 4 views
0

그래서 프로그램의 하위 폴더에서 외부 응용 프로그램을 시작해야합니다. 응용 프로그램은 프로그램과 함께 배포되지만 다른 위치에있을 수 있으므로 "c : \ folder \ example.exe"에 하드 코드 할 수 없습니다.VB.net에서 하위 폴더에있는 프로그램을 방문하고 있습니다.

실행하면 오류가 발생하지만 파일을 찾을 수 없습니다. \ bin \ debug에 폴더와 파일이 있습니다.

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click 
    System.Diagnostics.Process.Start("\app\ds104.exe") 
End Sub 

응용 프로그램이 이상적인 루트 폴더에 있어도 같은 오류가 발생합니다.

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click 
    System.Diagnostics.Process.Start("ds104.exe") 
End Sub 

고맙습니다.

+0

당신은 첫 번째 백 슬래시를 제거해야합니다. 어쨌든 "Environment.CurrentDirectory"의 가치는 무엇인지 확인할 수 있습니까? –

답변

2

Process.Start() 메서드는 인수로 전체 경로를 사용합니다.

My.Application.Info.DirectoryPath 속성을 사용하여 응용 프로그램이 실행되고있는 경로를 가져올 수 있습니다. 그런 다음 실행하려는 응용 프로그램의 위치에이 응용 프로그램을 연결 한 다음 Process.Start() 메서드를 호출하십시오.

예 :

Imports System.Diagnostics 

... 

Private Sub StartApplication() 
    Process.Start(My.Application.Info.DirectoryPath & "\Path\To\App.exe") 
End Sub 
+0

나는 바보인데 앱의 버전 (이름은 다르다)이 다르다는 것을 깨닫지 못했다. 하지만 "My.Application.Info.DirectoryPath"가 마음에 들면 그 부분을 살펴볼 것입니다. – NoNo

관련 문제