[python-win32] Grabbing an active Excel application
Blair Hall
b.hall@irl.cri.nz
Sat, 17 Aug 2002 09:00:17 +1200
Exactly!
I would like to try and design the Python application to handle COM better.
However, I need some advice on how to do that.
At 11:40 16/08/02 -0500, Jens B. Jorgensen wrote:
>It gets worse. I find that if I have a python open that has a reference to
>an Excel.Application object and then I close the Excel window while python
>is still running then if I later run Excel the inner frame of the window
>gets hung (never paints, shows image of what was behind the window). I'm
>sure this is not a python problem per se but a COM one. In this case I can
>look at the process manager and find a running excel.exe. I have to kill
>that process and then start again to get back to normal.
>
>Blair Hall wrote:
>
>>Further to my posting yesterday, and Jens' suggestion, I find that 'grabbing'
>>an existing Excel is still problematic.
>>
>>Here is __init__ from my class that wants to use Excel
>>
>> def __init__(self
>> , visible=1
>> ):
>> """
>> Create a new file in the current working directory
>> and save a new Excel workbook in it.
>> """
>> try:
>> self.__app = win32com.client.Dispatch("Excel.Application")
>> self.__app.Visible = visible
>> except pythoncom.com_error, e:
>> self.__comExceptionHandler(e)
>>
>>When I instantiate that class the first time, then all
>>is fine. ie:
>>
>> >>> xl = myClass()
>>
>>However, if I then immediately do something silly like
>>
>> >>> xl = myClass()
>>
>>Excel disappears from view (it is still running though). From that point
>>on Python and Excel don't seem to be quite able to agree on how
>>to interact.
>>
>>It seems that Jens' suggestion is fine, but in case I am looking for
>>a few more idiot-proof safeguards.
>>
>>By the way, I am working on Win95.
>>
>>
>>
>>_______________________________________________
>>Python-win32 mailing list
>>Python-win32@python.org
>>http://mail.python.org/mailman/listinfo/python-win32
>
>
>--
>Jens B. Jorgensen
>jens.jorgensen@tallan.com
>
>"With a focused commitment to our clients and our people, we deliver value
>through customized technology solutions"
>
>