Problem beim starten eines anderen Program aus vb6

Hallo!

Ich habe folgendes Problem:
Aus meinem Program heraus möchte ich ein anderes Program öffnen. Dies hatte ich vor mit der shell() Funktion. So weit so gut. Die *.exe reagiert ja auch darauf, nur geht es dann nicht weiter. Wenn ich mein jetziges Program kompiliere und die *.exe in den selben Pfad kopiere, wo die zu startende *.exe drin ist, dann geht es. Ich denke ich muß vor dem Aufruf in meiner *.exe erst mal den Pfad und das Verzeichnis wechseln. Stimmt das und wie mach ich das???
Danke für die Antworten schon im voraus.
Marcus

Hi Marcus,

Du musst immer Pfad und Namen angeben, sonst funktioniert das nur manchmal eher zufällig.

Handle = Shell("C:\Programme\Dein_Verzeichnis\Dein_Programm.exe,1)

Man muss das Handle nicht nehmen und kann auch Parameter übergeben. Für Programme, von denen Windows weiß, wo sie liegen, muss der Pfad nicht angegeben werden. Beispiel:

Shell "Notepad.exe C:\Test.txt, 1

Das öffnet die Datei Test.txt im Notepad normal mit Focus.

Gruß, Rainer

Hallo Rainer!
Erst mal vielen Dank für die Antwort. Aber so funktioniert es auch nicht. Ich habe es mit TaskID, mit Shell() und mit Shell Execute versucht. Nichts hilft. In dem Ordner wo das Programm (*.exe) liegt, sind noch einige Dateien drin, die die *.exe dann abfragt. Wenn ich das Programm einzeln starte, dann ließt er in den Dateien die Werte aus und das Progrmm läuft. Wenn ich das Programm aber aus meinem VB6 Programm heraus starte, dann findet er zwar die *.exe aber anscheinend die anderen Dateien nicht, denn es kommt dann meine Fehlermeldung, das die Daten nicht gelesen werden konnten und das Programm nicht fortgesetzt wird. Ich bin aber sehr zuversichtlich, da dein letzter Rat bei mir auch zum Erfolg führte.
Danke Marcus

Hi Marcus,

was ist das für ein Programm, das Du startest? Eventuell auch ein VB-Programm von Dir? Wenn ja, kann es sein, daß Du da mit CurDir statt App.Path gearbeitet hast? Das würde das Verhalten erklären.

Gruß, Rainer

Hallo Rainer!

Es ist kein Programm von mir. Und es ist im Q-Basic geschrieben. Den genauen Code kenne ich nicht. Ich habe aber irgendwo noch eine unkompilierte Version. Nur soweit ich mich erinnere, kann diese nicht mehr kompiliert werden. Außerdem besitze ich nur vb6 und das muckiert da ganz schön rum.
Danke Marcus

Hallo, Marcus!

Wenn Dein/das Programm in der Tat mit CurDir arbeitet, dann setze das Verzeichnis vor dem Shell-Befehl entsprechend mit

ChDrive "C:" ' falls Du gerade nicht auf C sein solltest
ChDir "C:\DeinVerzeichnis\NochEins"
' hier sollte die Verzeichnisangabe auch wegfallen können:
Shell "C:\DeinVerzeichnis\NochEins\DeinProgramm.exe"

Gruß, Manfred

1 Like

Hallo Manfred!

Danke für die Antwort. Genau das ist es gewesen. Hab es gleich ausprobiert und es hat funktioniert.
Danke Marcus