Проверка, запущен ли python-скрипт от имени администратора
В коде имеется скрипт, работающий только от имени администратора и если запустить его просто так, то все остальное, что делает код, будет бесполезно без этого скрипта. Поэтому мне надо, чтобы при запуске приложения проверялось, запущено ли оно от имени администратора, и если нет - запуск должен отмениться и вылететь ошибка.
Я сделал это следующим образом:
import os
import ctypes
from tkinter import messagebox as mb
def is_admin():
try:
return os.getuid() == 0
except AttributeError:
return ctypes.windll.shell32.IsUserAnAdmin() != 0
if is_admin == True:
#запуск скрипта
else:
mb.showerror('Ошибка','Запустите от имени администратора')
Однако у меня при запуске, что от имени админа, что без него, появляется ошибка (мое сообщение) В чем проблема?
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
Не хватает скобок, нужно так
if is_admin() == True:
А ещё лучше так
if is_admin():
Избавиться от второго окна можно добавив строчки:
root = tkinter.Tk()
root.withdraw()
mb.showerror('Ошибка','Запустите от имени администратора')