win32com, string array --> Type mismatch?

Harry Pehkonen harry.pehkonen at hotpop.com
Tue Aug 12 00:24:00 CEST 2003


"Roger Upole" <rupole at hotmail.com> wrote in message news:<3f343831_1 at corp-news.newsgroups.com>...
> I've run into the same problem with Reflection.  This is what I do to get
> around it:
> import win32com.client
> ###win32com.client.gencache.EnsureDispatch('Reflection2.Application',0)
> ###only need to do above once

That's very interesting -- for me, it produces yet another CLSID:

    KeyError: '{1396DDA0-4B0D-101B-AC7B-04021C007002}'

I got the above when trying to EnsureDispatch for Reflection2.Session.
 Trying to do the same for Reflection2.Application produces an
``invalid class string.''  I also get that with
Dispatch("Reflection2.Application") :C

> ra=win32com.client.Dispatch('Reflection2.Application')
> m=win32com.client.gencache.GetModuleForProgID('Reflection2.Application')

I seem to get None from GetModuleForProgID.  I also tried
GetModuleForCLSID with all of three CLSID's -- all produce:

    >>> type(m)
    <type 'NoneType'>

> r=m.Application(ra)
> r.Visible=1
> r.WaitForStrings(('xxxxx','yyyyyy'),0,1)
>   I'm probably using an older version of Reflection than you are (there is
> no
>    Session object) but the same principles should apply.

Mine is version 8.0.5.  The documentation just says you get more
visual basic support, and possible faster scripts with the Session
object than Application.  I'd say stick with the older one ;D

Thanks, Roger, for your reply.  That method is still dead in the water
for me, but I'm thrilled to learn more about win32all!

I have that method wrapped nicely, so I'll just make some work-arounds
for now, and fix it later if possible.

Thanks again!
Harry.




More information about the Python-list mailing list