[VB6] Datei ausführen

Hallo zusammen…

Ich möchte aus meinem Programm ein weiteres Programm ausführen. Dazu benütze ich folgende Syntax:

TaskID = Shell("PFAD\DATEINAME.EXE",vbNormalFocus)

Wenn ich diese Syntax beispielsweise für den Windows-Notepad (NOTEPAD.EXE) verwende, funktioniert das Tool ohne Probleme.

Wenn ich diese Syntax aber für ein anderes Tool benütze, funktioniert es nicht. Ich könnte mir vorstellen, dass es mit dem Programm zu tun hat.

Das auszuführende Programm zeigt nämlich zuerst ein Dialogfeld an und erst nach einem Klick auf OK wird das eigentliche Programm gestartet (Sprich: erscheint in der Taskleiste).

Ich könnte mir nun vorstellen, dass VB meint, dass das Tool abgestürzt ist und es wieder beendet.

Wenn ich die Variable „TaskID“ abfrage, gibt es mir eine Task-ID zurück, die bei jedem Start anders ist (=logisch). Somit wurde das Programm ja auch (kurz) gestartet…

Gibt es einen Weg ein Programm auszuführen und keine Überprüfung durchzuführen ?

Vielen Dank

Christian

Hallo Christian,
VB beendet das Programm ganz sicher nicht von alleine!!

Wenn der Shell()-Befehl funktioniert hat (kein Runtime-Error bzw. gültige TaskID), dann läuft das Prog. Schau mal in den TaskManager.

Was anderes ist, wenn sich das Prog so nicht aufrufen lässt (warum auch immer). Um welches Tool handelt es sich da eigentlich?!?

greets from MichL (Vienna)

Was anderes ist, wenn sich das Prog so nicht aufrufen lässt
(warum auch immer). Um welches Tool handelt es sich da
eigentlich?!?

Naja… es ist irgendso ne Finanzverwaltung (Simultan)…
Aber ich habe inzwischen gemerkt, dass es mit ShellExecute funktioniert - mit dem VB-Eigenen Aufruf funktionierts nid - frag mich nid wieso :smile:

Viele Grüsse

Christian

Ich weiss vielleicht warums nicht geht:

Wenn Du ein Programm mit Shell() aufrufst, kannst Du ja nicht das „Arbeitsverzeichnis“ mitgeben. Bei ShellExecute() geht das schon und Du hast das wahrscheinlich auch gemacht bzw. NULL übergeben und das könnte möglicherweise heißen Arbeitsverzeichnis = Programmverzeichnis!?!?

Manche Programme (u.a. manchmal auch meine eigenen) lassen sich nicht starten, wenn das Arbeitsverzeichnis nicht stimmt.

Du könntest die Probe machen, indem Du vorher mit
ChDrive()
ChDir()
das aktuelle Arbeitsverzeichnis einstellst und dann den Shell() aufrufst.

greets from MichL (Vienna)