[python] Python freeze a Vista UAC
Radek Holý
radekholypublic na gmail.com
Středa Červen 6 23:30:47 CEST 2012
Dobrý den,
moc děkuju za postrčení. Získal jsem další klíčová slova pro hledání a
nakonec jsem zjistil, že pro změnu manifestu stačí následující kód:
>>> import win32api
>>>
>>> # Load manifest.
>>> handle = win32api.LoadLibrary(PATH_TO_EXE)
>>> manifest = win32api.LoadResource(handle, 24, 1, 1033)
>>> win32api.FreeLibrary(handle)
>>>
>>> # Modify manifest (replacing 'requestedExecutionLevel level="asInvoker"' by 'requestedExecutionLevel level="requireAdministrator"').
>>>
>>> # Save new manifest.
>>> handle = win32api.BeginUpdateResource(PATH_TO_EXE, 0)
>>> win32api.UpdateResource(handle, 24, 1, manifest, 1033)
>>> win32api.EndUpdateResource(handle, 0)
Resp. toto stačí pro EXE soubory používané v cx_freeze. Nevím, jestli
v jiných EXE souborech není třeba použít jiné identifikátory než "1" a
"1033" ve funkcích ``win32api.LoadResource`` a
``win32api.UpdateResource``...
S díky a pozdravem,
--
Radek Holý
Dne 6. června 2012 13:45 Petr Hlávka <petrhlavka na gmail.com> napsal(a):
> přidám ještě odkaz na Resource Tuner -
> http://www.heaventools.com/rt-tour-xml-manifest-wizard.htm
>
>
> 2012/6/6 Petr Hlávka <petrhlavka na gmail.com>
>>
>> Dobrý den,
>>
>> přidat UAC manifest (ten zařídí žádost o elevaci) do existujícího souboru
>> by měl umět např. Resurce Tuner.
>>
>> Samotný cx_freeze pro to podporu asi bohužel nemá, viz.
>>
>>
>> http://sourceforge.net/tracker/index.php?func=detail&aid=3469038&group_id=84937&atid=574393
>>
>> S pozdravem Petr Hlávka.
>>
>>
>> 2012/6/6 Radek Holý <radekholypublic na gmail.com>
>>>
>>> Ahoj,
>>>
>>> myslel jsem, že tohoto poblému bude plný Internet a že na to hned
>>> najdu odpověď, ale ať hledám jak hledám, nic nenacházím. :-/
>>>
>>> Nevíte někdo, prosím, jak pomocí cx_freeze (nebo jiné alternativy pro
>>> Python 3) vytvořit EXE soubor, který vyžaduje "práva administrátora"
>>> (tedy "elevation", viz Vista User Access/Account Control)?
>>> Nebo alespoň jak výsledný soubor modifikovat tak, aby tyto práva
>>> vyžadoval? (ideálně tak, abych nemusel instalovat compiler)
>>>
>>> Na http://en.wikipedia.org/wiki/User_Account_Control píší něco o
>>> manifestu aplikace, ale vůbec netuším, jak jej podstrčit do cx_freeze,
>>> nebo jak ho modifikovat (bez compileru, resp. ani s compilerem) :-(
>>>
>>> Moc děkuju za odpověď
>>> --
>>> Radek Holý
>>> _______________________________________________
>>> Python mailing list
>>> Python na py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>
>>
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python