11. April 200719 j Guten Abend zusammen, habe mal wieder ein Problem: Ich führe über VB ein externes Programm mit dem Befehl Shell aus. Das Programm benötigt eine gewisse Zeit und arbeitet im Hintergrund. Wenn es fertig ist und die zugehörigen Textdateien aktualisiert hat, sollen diese geöffnet werden und die Inhalte über vb eingelesen und weiter verarbeitet werden. Jetzt ist VB natürlich ein Panzer, der nicht lange wartet, bis die Anwendung beendet ist. Stattdessen macht er gleich mit den nächsten Befehlszeilen weiter, also zu früh, da die externe Anwendung noch nicht beendet ist. Jetzt an Euch: Es gibt doch sicherlich einen Befehl, mit dem man herausfinden kann, ob eine externe Datei noch läuft!? (IsActive und Ähnliche haben nicht geklappt) Code Gerippe: ... Shell(anwendung.exe, vbHide) ' hier muss VB warten, bis anwendung.exe beendet ist Open "pfad/text.txt" As Input #1 'hier wird die Textdatei geöffnet, auf die 'kurz zuvor noch von anwendung.exe geschrieben wurde .... Für einen funktionierenden Befehl in VB Application (oder auch VB 6) wäre ich sehr sehr dankbar. Gruß Der Wechselrichter
11. April 200719 j Wenn du genau weißt wie lang es dauert bis das Programm ausgeführt kannst du mit "wscript.sleep (sekunden anzahl)" das Programm pausieren,
12. April 200719 j Wie lange die Anwendung benötigt, weiß ich leider nicht. Ich habe es bis jetzt provisorisch mit dem "Sleep (3000)" Befehl gelöst, aber das ist nun mal nicht das Gelbe vom Ei. Es werden noch mehr Anwendungen hinzukommen, die untereinander koordiniert werden müssen, damit kein Krampf herauskommt, oder damit nicht zwei Anwendungen zur selben Zeit auf ein Textdokument zugreifen. Dann geht nämlich garnichts mehr!! Aber trotzdem Danke für Deine Hilfe. Gruß Der Wechselrichter
12. April 200719 j Moin, ich habe als erstes deinen Betreff minimal modifiziert Warten bis externe Anwendung beendet ist VB bei Google eingegeben und der erste angezeigte Treffer scheint mir doch ein Volltreffer zu sein. Darauf hättest du aber selber auch kommen können. :upps :upps :upps Reinhold
13. April 200719 j arbeite mit der API und verwende ShellExecute anstelle des nativen Shell. AFAIR kann erstere auf das beenden des subprozesses warten. s'Amstel
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.