[python-win32] COM registration/unregistration and elevation on Vista

Mark Hammond mhammond at skippinet.com.au
Sat Jan 19 00:38:13 CET 2008


> From: python-win32-bounces at python.org [mailto:python-win32-
> bounces at python.org] On Behalf Of Tim Roberts
> Sent: Saturday, 19 January 2008 5:02 AM

...
> It is possible (since XP) to register a COM object in
> HKEY_CURRENT_USER\Software\Classes instead of
> HKEY_LOCAL_MACHINE\Software\Classes (which is HKEY_CLASSES_ROOT).
> Writing to HKCU should not require elevation.  However, as you might
> expect, that results in a COM object that is usable only by the current
> user.

Yes, I weaseled my way out of that by saying it was necessary for
installation of "python COM" objects, not "COM objects" ;)  Supporting COM
objects in HKCU is probably worthwhile, but IMO is a different problem than
what I was solving, where the assumption is that the user trying to register
it does want it in HKLM, and is capable of doing so once elevated.

> An application with "setup" or "install" or "update" in its filename
> automatically gets elevated.  I wonder if it would be possible to
> create
> a clone of Python.exe called PythonSetup.exe and use that for
> registration?  I guess that's not really better than your solution.

An alternative there would be to name it anything we like, and give it the
manifest-foo that forces elevation.  MS have documented the hacks based on
filenames will go away in the future (yeah, riiiiight :)

> You're right, there are no perfect answers.

In your opinion, is my patch an improvement to the status-quo, or does it
have the potential to cause confusion?

Thanks,

Mark



More information about the python-win32 mailing list