Wechselrichter Geschrieben 11. April 2007 Geschrieben 11. April 2007 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 Zitieren
WolleXPC Geschrieben 11. April 2007 Geschrieben 11. April 2007 Wenn du genau weißt wie lang es dauert bis das Programm ausgeführt kannst du mit "wscript.sleep (sekunden anzahl)" das Programm pausieren, Zitieren
Wechselrichter Geschrieben 12. April 2007 Autor Geschrieben 12. April 2007 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 Zitieren
Reinhold Geschrieben 12. April 2007 Geschrieben 12. April 2007 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 Zitieren
Amstelchen Geschrieben 13. April 2007 Geschrieben 13. April 2007 arbeite mit der API und verwende ShellExecute anstelle des nativen Shell. AFAIR kann erstere auf das beenden des subprozesses warten. s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.