Programm starten über seine Schablone - wie geht das?
Verfasst: Sa 27. Aug 2022, 17:55
Ich versuche, aus einem Rexx-Programm heraus ein leeres Spreadsheet (aus IBMWorks) zu starten. Dazu bin ich auf die Idee verfallen, das Template-Objekt für IBMWorks-Spreadsheets zu öffnen (bei mir unter C:\Desktop\Computer\Templates\FPWorks SS.LSS).
Das funktioniert im Prinzip auch. Ich habe mir das Schablonen-Objekt sicherheitshalber kopiert in mein Arbeitsverzeichnis e:\Rexxe, unter einem neuen Namen "EmptySheet.LSS".
In meinem Rexx-Programm verwende ich diesen Befehl:
Das leere Spreadsheet öffnet sich, ich kann darin arbeiten. Das Problem dabei ist: Wenn ich das Spreadsheet schließe, egal ob modifiziert oder nicht, geht mein ganzer Prozess flöten. Will sagen: Mein aufrufendes Rexx-Programm wird zwangsbeendet.
Ich ging davon aus, dass die SysOpenObject()-Funktion ähnlich wie ein "Call" funktioniert, also das Objekt synchron aufgerufen wird. Vielmehr sieht es so aus, als ob ein neuer Prozess gestartet wird, der die vollständige Kontrolle über mein Rexx-Programm erhält. Mit der häßlichen Folge, dass der startende Prozess (mein Rexx-Programm) automatisch mit beendet wird, wenn das gestartete Objekt endet.
Leider fehlt mir ein tiefergehendes Verständnis der OS/2-eigenen Object-Technologie, sodass ich an der Stelle nicht weiterkomme.
Gibt's da vielleicht irgendwelche (undokumentierten) Parameter im SysOpenObject(), die das Problem aus der Welt schaffen?
Danke,
Lutz W.
Das funktioniert im Prinzip auch. Ich habe mir das Schablonen-Objekt sicherheitshalber kopiert in mein Arbeitsverzeichnis e:\Rexxe, unter einem neuen Namen "EmptySheet.LSS".
In meinem Rexx-Programm verwende ich diesen Befehl:
Code: Alles auswählen
Obj = "e:\Rexxe\EmptySheet.LSS";
ok = SysOpenObject( Obj, "DEFAULT", "FALSE" );
Ich ging davon aus, dass die SysOpenObject()-Funktion ähnlich wie ein "Call" funktioniert, also das Objekt synchron aufgerufen wird. Vielmehr sieht es so aus, als ob ein neuer Prozess gestartet wird, der die vollständige Kontrolle über mein Rexx-Programm erhält. Mit der häßlichen Folge, dass der startende Prozess (mein Rexx-Programm) automatisch mit beendet wird, wenn das gestartete Objekt endet.
Leider fehlt mir ein tiefergehendes Verständnis der OS/2-eigenen Object-Technologie, sodass ich an der Stelle nicht weiterkomme.
Gibt's da vielleicht irgendwelche (undokumentierten) Parameter im SysOpenObject(), die das Problem aus der Welt schaffen?
Danke,
Lutz W.