[python-win32] COM registration/unregistration and elevation onVista
MACKEITH Andrew
Andrew.MACKEITH at 3ds.com
Fri Jan 18 15:00:22 CET 2008
> -----Original Message-----
> From: python-win32-bounces at python.org
> [mailto:python-win32-bounces at python.org] On Behalf Of Mark Hammond
> Sent: Thursday, January 17, 2008 11:10 PM
> To: 'Python-Win32 List'
> Subject: [python-win32] COM registration/unregistration and
> elevation onVista
>
> On Vista, it's necessary to register python COM objects from
> an "elevated"
> process. In practice, this means I tend to keep a
> command-prompt open started with "run as administrator", do
> registration and unregistration there, then switch back to
> the normal command-prompt to do testing etc. I finally got
> annoyed at this, and came up with a patch that catches this
> error, then retries the command after prompting for elevation
> (the infamous Vista "Allow" dialog).
>
> However, it's not perfect;
> * a new process is created to perform the actual
> registration, and the output from this process is lost. The
> normal ways of getting child process will not work, as the
> child must be executed via ShellExecuteEx for the elevation
> to happen. We can get the exit code of the process, but no output.
> * The elevation prompt simply says "python.exe" wants
> big-bad-scary access to your computer. AFAIK, there is no
> way to have windows use a different string (ie, to indicate a
> com object is being registered)
> * It might be too magic - should this just be left as the
> responsibility of the packager? Will it interfere with
> "frozen" servers?
>
> As a result, I'd like some feedback on my approach - both the
> specific implementation and the general idea, or anything
> else you can think of.
> I've attached the patch.
>
> Thanks!
>
> Mark
>
Does this mean that a user needs administrator access to use Python COM
on Vista, or is this only for registering a Python COM object for use as
a COM server?
Andrew
More information about the python-win32
mailing list