Hallo,
Ich rufe über ein Makro mit oShell.execute("...") ein externes Programm auf. In diesem Programm sollen Werte ausgewählt und in eine Datei zurückgeschrieben werden, die ich anschließend wieder in dem aufrufenden Makro weiterverarbeiten möchte.
Mein Problem: Wie kann ich es realisieren, dass die Makroabarbeitung so lange wartet, bis das aufgerufene Programm beendet wurde?
Vielen Dank!
stoni
Programmaufruf -> Makro wartet auf Beenden...
Moderator: Moderatoren
Re: Programmaufruf -> Makro wartet auf Beenden...
Hei stoni,
der Shell-Befehl startet einen neuen Prozess - außerhalb von OOo. Da wirst du auf eine Rückmeldung vergeblich warten....
Dass einzige, was ich mir vorststellen könnte:
Du nutzt den Shellbefehl von Basic - da kannst du den letzten Parameter (4.) setzen, dass Basic wartet, bis der aufgerufene Prozess beendet ist.
Oder: Endlosschleife in OOo und Abfrage eines Ereignisses (zum Beispiel Inhalt einer Zelle, die vom externen Programm beschrieben wird - weiter geht es erst nach dem Ereignis) also so etwas wie:
Ist sicher nicht er schönste Weg - aber es fehlt natürlich der Gesamtzusammenhang.
Viele Grüße
Thoma
der Shell-Befehl startet einen neuen Prozess - außerhalb von OOo. Da wirst du auf eine Rückmeldung vergeblich warten....
Dass einzige, was ich mir vorststellen könnte:
Du nutzt den Shellbefehl von Basic - da kannst du den letzten Parameter (4.) setzen, dass Basic wartet, bis der aufgerufene Prozess beendet ist.
Oder: Endlosschleife in OOo und Abfrage eines Ereignisses (zum Beispiel Inhalt einer Zelle, die vom externen Programm beschrieben wird - weiter geht es erst nach dem Ereignis) also so etwas wie:
Code: Alles auswählen
...
flag = false
do until flag
wait(1000)
if oZelle.value > 0 then
flag = true
end if
loop
' hier geht es dann weiter...
Viele Grüße
Thoma
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Programmaufruf -> Makro wartet auf Beenden...
vielen Dank!
Der einfache shell-Befehl würde mein Problem lösen - aber ich bekomme den Aufruf hier nicht mit UNC-Namen hin. Geht das generell?
Gruß stoni
Der einfache shell-Befehl würde mein Problem lösen - aber ich bekomme den Aufruf hier nicht mit UNC-Namen hin. Geht das generell?
Gruß stoni