Tim Roberts schrieb:
> Kevin Patterson wrote:
>> Does the registry get updated every time the comserver is run? For
>> example I know some of my users keep multiple copies of the same rev
>> (or different revs) in different directories. My script often gets
>> called after the COM server is up and running:
>>
>> So user has:
>> C:\appA\app.exe
>> and
>> C:\appB\app.exe
>>
>> The appA may be the one originally installed, but appB directory may
>> be another copy of the same app only with different config files. If
>> the user ran appB would the register still points to appA.
> 
> Well, this is a good question, and having looked into it in more depth,
> I've discovered that I don't know the answer.
> 
> Out-of-process servers call CoRegisterClassObject to register their
> classes with the COM runtime.  That doesn't change the registry.  I
> can't find a COM utility to return the process ID for a given CLSID, and
> without that, I don't know how you'd find the executable name.
> 
I think that's not entirely correct.  Out-of-process servers call 
CoRegisterClassObject
*only* to make the class factory available to the COM runtime.  The server is 
still
started with CoCreateInstance looking into the registry for finding the 
executable 
to start.

I event think that at least /some/ out-of-process servers update the registry
each time they are started.  But, a simple experiment should find out if that's
the case for the OP's app.exe.

Thomas

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to