Skip to main content

以管理员调用自身

判断是否管理员,直接重启自身

def run_as_admin():
import ctypes,sys

# UAC申请,获得管理员权限
try:
res = ctypes.windll.shell32.IsUserAnAdmin()

if res: return

ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
except:
return False

原理

def is_admin():
# UAC申请,获得管理员权限
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False

if ( __name__ == "__main__"):
if is_admin():
#do....
pass
else:
# 重新调用自身
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, __file__, None, 1)