Currently there is no nice solution to your problem. I'm sure you understand it is by design pythonw.exe closes when the last reference is closed, and why your work-around is effective.
When hosted as a localserver, win32com\server\localserver.py is used as the main program. This is configured in win32com\server\register.py, but there is no facility for overriding this. I'd be happy to accept a patch which allowed you to specify a custom driver program, and this would be free to ignore the shutdown request (ie, simply not call pythoncom.EnableQuitMessage()) Mark > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Frank Guenther > Sent: Thursday, 17 February 2005 11:22 PM > To: python-win32@python.org > Subject: [python-win32] keeping a COM server alive > > > Hi, > > I posted this some days ago in comp.lang.python > <http://groups-beta.google.com/group/comp.lang.python> but > didn't get a > real solution. > Perhaps someone here can help me. > > I have implemented a local COM Server with win32com framework > where all > clients > use the same global object (test_obj). So far it works, but when the > last client is closed the gobal object is deleted because the > pythonw.exe is > closed. When I create a new client a new pythonw process is > started. I > need that the > new client gets the same global object. How can I prevent the > Python COM > enviornment (pythonw.exe) to close when no client exist. I > figured out a > workaround, but there must be real solution to the problem. > > The code looks like: > > class test: > ... > > test_obj=test() > > class test_F: > > _reg_clsid_ = ... > _reg_progid_ = "test.cl" > _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER > _public_methods_ = ... > > def __init__(self): > self.delegate=test_obj > .... > ... > > ####Workaround to keep the local server alive > if not __name__=='__main__': > import win32com.client > dummy=win32com.client.Dispatch("test.cl") > ########################################################## > > if __name__=='__main__': > import win32com.server.register > win32com.server.register.UseCommandLine(test_F, debug=0) > > > > _______________________________________________ > Python-win32 mailing list > Python-win32@python.org > http://mail.python.org/mailman/listinfo/python-win32 _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32