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 ?
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
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.