2016-10-28 2 views
-1

Ich habe Program1 auf meinem Desktop. Program1 soll Program2 öffnen. Ich habe Program2 in \ Folder1 \ Folder2.Aufruf des Programmverzeichnisses beim Aufruf aus einer anderen Anwendung

So sieht alles wie folgt aus:

Programm 1 = On Desktop-

Programm 2 = \ Ordner1 \ Folder2 \ Program2.exe

ich diesen Code in Program1 bin mit Program2 zu öffnen:

Process.Start("Z:\Folder1\Folder2\Program2.exe") 

Also, wenn Program2 geöffnet ist, ist es den Pfad einer Datei, die in Folder1 mit diesem Code enthalten ist:

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

So öffnen wir Program1. Programm1 öffnet Programm2. Program2 öffnet eine Datei ein Verzeichnis in Folder1.

Wenn ich Program2 direkt ausführen, funktioniert alles. Wenn ich jedoch Programm1 starte, öffnet es Programm2, das aus irgendeinem Grund denkt, dass das Verzeichnis Programm1 ist.

Irgendwelche Ideen?

+0

Bitte zeigen Sie den Code, der von Programm1 öffnet Programm2 – Steve

+0

Bearbeitete meinen ursprünglichen Beitrag! – lolikols

+0

Verwenden Sie die ProcessStartInfo-Klasse, um detailliertere Informationen an Process.Start zu übergeben. Insbesondere Einstellung des WorkingDirectory – Steve

Antwort

0

In einfachen Worten, Environment.CurrentDirectory gibt das Verzeichnis an, in dem die gesamte Prozesskette gestartet wurde, in diesem Fall der Desktop, wenn Program1 gestartet wird. Wenn Programm2 unabhängig ausgeführt wird, funktioniert es korrekt, da der Prozess gestartet wurde.

Um das Verzeichnis von Program2 immer zu erhalten, sollten Sie Assembly.GetExecutingAssembly() verwenden. Ort aus dem Code in Program2.

+0

Danke! Also habe ich versucht diese: Dim Pfad As String = System.IO.Path.GetDirectoryName (. System.Reflection.Assembly.GetExecutingAssembly() Ort) Aber das gibt den ganzen Weg, und ich weiß nicht, wie um einen Ordner nach unten zu navigieren. Entschuldigung für die schlechte Formatierung meines Kommentars. Ich weiß nicht, wie man eine Zeile auslässt. – lolikols

+0

Sie sollten nur in der Lage sein, die nächste Verzeichnisebene an die Zeichenfolge anzuhängen, die Sie zurückbekommen, und dann die Datei von diesem Pfad aus zu öffnen. – cdkMoose

Verwandte Themen