Externes Programm starten und Ende mitbekommen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Externes Programm starten und Ende mitbekommen

Beitrag von F3K Total »

Hi,
vielleicht kann dir der Herr Dannenhöfer helfen.
Habe es gerade unter W7 ausprobiert, letzter Parameter true und Starbasic wartet, bis das externe Programm beendet ist.
EDIT: Linux geht auch, z.B.:

Code: Alles auswählen

Sub Main
   Shell("gnome-terminal", 10, "",true)
   msgbox "Fertig, Terminal beendet"
End Sub
Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Externes Programm starten und Ende mitbekommen

Beitrag von F3K Total »

Verstehe ich nicht.
Das Makro läuft nach dem Ende des gestarteten Prozesses weiter und kann dir genau dann, wenn der Prozess zu Ende ist, eine Mitteilung machen, ein anderes Programm starten, oder, oder, oder.
Wo liegt das Problem?
Vielleicht solltest du genauer beschreiben, was du vorhast.
Gruß R
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Externes Programm starten und Ende mitbekommen

Beitrag von balu »

Moin R,

NewToOO möchte
- Makro startet externes Programm
- Makro wird weiter ausgeführt
- Makro bekommt mit das das externes Programm beendet wurde, oder sich selbst beendet hat und dementsprechend reagiert
- Wenn externes Programm weiterhin noch aktiv ist, dann läuft auch das Makro weiter

Ich wüsste nicht das dies mittels StarBasic realisierbar wäre, da ja das Makro beispielsweise irgendwie jede Sekunde überprüfen müsste ob das externe Programm noch läuft. Ich wüsste ferner auch nicht wie man mittels StarBasic diese Überprüfung durchführen solle. Vielleicht liese sich da ja was mittels Python machen, aber das ist nicht meine Baustelle.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Externes Programm starten und Ende mitbekommen

Beitrag von balu »

Hallo NewToOO,
Aber wenn ich aus OO heraus ein externes Programm starten kann, dann müsste man doch auch (in meiner Vorstellung) irgendwas zurücckbekommen mit dem ich den externen Prozess identifizieren kann und quasi ab und zu überprüfen kann, ob der Prozess noch aktiv ist?
Mein Wissen über StarBasic ist nicht so ausgeprägt, oder Umfangreich wie von manch anderem hier. Aber irgendwo hatte ich mal was davon gesehen/gelesen das StarBasic wohl unter Windows bis zu einem bestimmten Grad die Regestry auslesen und verarbeiten kann. Und dadurch könnte man theoretisch (da ich es praktisch nicht weiß) den Status eines Programmes abfragen. Wie das bei Linux basierten Systemen ist weiß ich nicht.

Der unterstrichene Teil deiner Aussage wirft jetzt aber ein ganz anderes Licht auf die Problematik, darauf gehe ich gleich etwas genauer ein.

Oder ist da meine Vorstellung falsch?
Ich würd mal sagen; Ja. Denn dir muss bewusst sein, das ein StarBasic-Makro Zeilenweise abgearbeitet wird. Das bedeutet, es können nicht zwei Befehle gleichzeitig ausgeführt werden. Aber dies müsste so sein, wenn das Makro ein externes Programm startet, den Makro-Code weiter abarbeitet und gleichzeitig immer ein Auge auf das externe gestarte Programm wirft.

Etwas anders könnte es aussehen, wenn das Makro in bestimmten Zeit Intervallen ein Auge auf das externe Programm wirft. Denn dann könnte man vielleicht das Makro hin und wieder in die Überprüfungsphase verzweigen lassen. Das ist dann aber auch widerum sehr stark vom gesamten Ablauf und Umfang des Makros abhängig. Da jede Verzweigung in die Überprüfungsphase Zeit kostet, kann sich das wohl durchaus negativ auf das gesamte Makro auswirken.

Da ich so etwas noch nicht programmiert habe, kann ich dir ja noch nicht mal versprechen ob das überhaupt funktioniert. Es ist also alles erstmal nur so ein Gedankenexperiment.


Ich habe auch jetzt wieder ganz bewust StarBasic gesagt, da ja auch noch andere Programmiersprachen schon "on Board" sind. Vielleicht könnte dein Vorhaben mittels JavaScript oder mit Python realisierbar sein. Aber mit diesen Sprachen habe ich noch gar nix am Hute.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Externes Programm starten und Ende mitbekommen

Beitrag von clag »

Hallo zusammen,

je nach dem was für ein Programm aufgerufen werden soll, könnte man sich mit einer Batch Datei behelfen, die das Programm startet,
einen Wert in eine temporäre Datei schreibt und den Wert bei Programmende ändert bzw die Datei wieder löscht.

Aus Starbasic heraus könnte man dann zB die Datei inhaltlich oder auf Existenz prüfen.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten