Exit Cinema 4D from Python

On 07/09/2015 at 03:09, xxxxxxxx wrote:

Hi! I want to close Cinema 4D (ideally with a specific exit code) from Python, and I'd prefer to use
an OS or C4D API function, but nothing but the system command works. What would be interesting
to be especially is why Cinema just freezes instead quitting or continuing to function properly.

sys.exit(1)  # sys.exit() not allowed from embedded application
os._exit(1)  # Cinema freezes
ctypes.windll.kernel32.ExitProcess(1)  # Cinema freezes
os.system('taskkill /PID %d' % os.getpid())  # That kind of works but I can't set the exit code

Tested on R16.

On 07/09/2015 at 04:25, xxxxxxxx wrote:

Have you try simple, write exit() , without os or sys... it works, c4d asks to save project or close it if saved(all should be saved, script too, if test be in script manager). shutdown itself and we even don't see it in task manager

On 07/09/2015 at 05:46, xxxxxxxx wrote:

Hm I guess I didn't wait for long enough. Using raise SystemExit()  works, but the Cinema interface
gets disabled for some time before it really closes.

Thanks Ilya

On 08/09/2015 at 02:56, xxxxxxxx wrote:

Hi Niklas,

why not simply use the Quit-Command?

c4d.CallCommand(12104, 12104) # Quit (IDM_BEENDEN)

In C++ this could probably be combined with SetExitCode(), but I'm afraid in Python that is not available.