Единственный способ сделать что-то в этом роде без внешней библиотеки - это использовать React's Context API , хотя и следует помнить, что он не так надежен, как redux или mobX.
Вы подразумеваете, что хотите, чтобы Windows запросил повышение, когда Ваша программа запущена? Этим управляют путем добавления декларации контроля учётных записей к ресурсам EXE. Эта запись в блоге объясняет, как создать декларацию и как скомпилировать ее в.RES файл.
Я не знаю, какие средства py2exe имеет для встраивания пользовательских.RES файлов, таким образом, Вы, возможно, должны были бы использовать инструмент MT.EXE с Платформы SDK для встраивания декларации в программу. для MT.EXE не нужны.RES файлы; это может объединить .manifest файл непосредственно.
Комментарий Roger Lipscombe развития, я использовал файл манифеста в py2exe без любого реального ведома того, что я делал. Таким образом, это могло бы работать:
# in setup.py
# manifest copied from http://blogs.msdn.com/shawnfa/archive/2006/04/06/568563.aspx
manifest = '''
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<asmv3:trustInfo xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:security>
<asmv3:requestedPrivileges>
<asmv3:requestedExecutionLevel
level="asInvoker"
uiAccess="false" />
</asmv3:requestedPrivileges>
</asmv3:security>
</asmv3:trustInfo>
</assembly>
'''
setup(name='MyApp',
#...
windows=[ { #...
'other_resources':[(24, 1, manifest)],
}]
)
Вы, возможно, должны сделать некоторую игру хотя..
Следуя примерам из Python2x \ Lib \ site-packages \ py2exe \ samples \ user_access_control
, просто добавьте uac_info = "requireAdministrator"
в консоль или Windows dict:
windows = [{
'script': "admin.py",
'uac_info': "requireAdministrator",
},]