@shegorbelix

Как сделать обязательное открытие программы через права администратора?

Всем доброго времени суток! Я создал свою программу на python, скомпилировал через auto-py-to-exe. Но для работы программы нужны права администратора, хотелось бы чтобы при открытии они автоматически запрашивались и перед иконкой появился значок "щита". Варианты открытие через меню, установка флага и другие не идут.
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DenisShahbazyan
import ctypes
import sys


def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False


if is_admin():
    # Код, который требует прав администратора
    print("Программа запущена с правами администратора")
    input("Нажмите Enter для завершения программы...")
else:
    # Перезапускаем программу с запросом прав администратора
    ctypes.windll.shell32.ShellExecuteW(
        None, "runas", sys.executable, " ".join(sys.argv), None, 1
    )


Для добавления значка "щита" перед иконкой программы, вы можете создать файл манифеста (your_program.exe.manifest) с указанием требования администраторских прав. Пример содержимого манифеста:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
06 мая 2024, в 09:38
1200 руб./в час
06 мая 2024, в 09:37
1200 руб./в час
06 мая 2024, в 09:36
8000 руб./за проект