32 lines
746 B
Python
32 lines
746 B
Python
import ctypes
|
|
import sys
|
|
from elevate import elevate
|
|
|
|
def is_admin():
|
|
try:
|
|
return ctypes.windll.shell32.IsUserAnAdmin()
|
|
except:
|
|
return False
|
|
|
|
def run_as_admin_old(argv=None):
|
|
shell32 = ctypes.windll.shell32
|
|
if argv is None and shell32.IsUserAnAdmin():
|
|
return True
|
|
|
|
if argv is None:
|
|
argv = sys.argv
|
|
if hasattr(sys, '_MEIPASS'):
|
|
# Support pyinstaller wrapped program.
|
|
arguments = argv[1:]
|
|
else:
|
|
arguments = argv
|
|
argument_line = u' '.join(arguments)
|
|
executable = sys.executable
|
|
ret = shell32.ShellExecuteW(None, u"runas", executable, argument_line, None, 1)
|
|
if int(ret) <= 32:
|
|
return False
|
|
return None
|
|
|
|
def run_as_admin():
|
|
elevate()
|