以管理员调用自身
判断是否管理员,直接重启自身
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)