Here is some tricks for you!!
First, if you exactly need to run two mode in a code, remember that you can only have one "IZOSAPI_Application" at a time. You will need to close the previous application in one mode in order to open it. In below, we provided a sample code.
import os from win32com.client.gencache import EnsureDispatch from win32com.client import gencache if __name__ == "__main__": # Create Connection gencache.EnsureModule('{EA433010-2BAC-43C4-857C-7AEAC4A8CCE0}', 0, 1, 0) gencache.EnsureModule('{F66684D7-AAFE-4A62-9156-FF7A7853F764}', 0, 1, 0) TheConnection = EnsureDispatch("ZOSAPI.ZOSAPI_Connection") if TheConnection is None: raise PythonStandaloneApplication.ConnectionException("Unable to intialize COM connection to ZOSAPI") # Test for Extension TheExtApplication = TheConnection.ConnectAsExtension(0) if TheExtApplication is None: raise Exception("Unable to acquire TheExtApplication") if not TheExtApplication.IsValidLicenseForAPI: raise Exception("License is not valid for ZOSAPI use") TheExtSystem = TheExtApplication.PrimarySystem if TheExtSystem is None: raise Exception("Unable to acquire _TheIESystem") # Do something in Interactive Extension TheExtApplication.CloseApplication() # Test for Standalone TheStandApplication = TheConnection.CreateNewApplication() if TheStandApplication is None: raise PythonStandaloneApplication.InitializationException("Unable to acquire TheStandApplication") if TheStandApplication.IsValidLicenseForAPI == False: raise PythonStandaloneApplication.LicenseException("License is not valid for ZOSAPI use") TheStandSystem = TheStandApplication.PrimarySystem if TheStandSystem is None: raise PythonStandaloneApplication.SystemNotPresentException("Unable to acquire _TheSASystem") # Do something in Stand Alone
On the other hand, there is actually a potentially better solution depending on your purpose. That is, in ZOS-API, you are allowed to have multiple IOpticalSystem simultaneously. Just check the following methods!!
LoadNewSystem()
CreateNewSystem()
at IZOSAPI_Application
CopySystem()
at IOpticalSystem
Hope this is what you are looking for!
Thank you for reading!