/ / Pobieranie katalogu programu po wywołaniu z innej aplikacji - .net

Pobieranie katalogu programu po wywołaniu z innej aplikacji - .net

Mam program 1 na moim pulpicie. Program1 powinien otworzyć Program2. Mam Program2 w Folder1Folder2.

Wszystko wygląda tak:

Program 1 = Na pulpicie

Program 2 = Folder1Folder2Program2.exe

Używam tego kodu w Program1, aby otworzyć Program2:

 Process.Start("Z:Folder1Folder2Program2.exe")

Tak więc, gdy Program2 jest już otwarty, znajduje ścieżkę pliku zawartego w Folderze1 za pomocą tego kodu:

 Dim Path As String= System.IO.Directory.GetParent(Environment.CurrentDirectory).ToString()

Otwieramy Program1. Program1 otwiera Program2. Program 2 otwiera plik o jeden katalog w folderze Folder1.

Kiedy uruchamiam program 2 bezpośrednio, wszystko działa. Kiedy jednak uruchomię Program1, otworzy się Program2, który z jakiegoś powodu myśli, że katalog jest katalogiem Programu1.

Jakieś pomysły?

Odpowiedzi:

0 dla odpowiedzi № 1

W prostych słowach Środowisko.CurrentDirectory odzwierciedla katalog, w którym rozpoczął się cały łańcuch procesów, w tym przypadku pulpit po uruchomieniu programu 1. Gdy program2 jest uruchamiany niezależnie, działa poprawnie, ponieważ właśnie tam rozpoczął się proces.

Aby zawsze uzyskać katalog programu2, powinieneś użyć Assembly.GetExecutingAssembly () Lokalizacja z poziomu kodu w Program2.