myClass生成一个XLSX文件到'./output'文件夹。 myClass中的以下代码行需要管理员权限:
excel = win32com.client.Dispatch('Excel.Application')
我按照了答案 Request UAC elevation from within a Python script?,现在我有以下脚本:
import ctypes, sys
from my_module import myClass
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
myClass
else:
# Re-run the program with admin rights
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, "", None, 1)
然而,这似乎提升并退出,就好像我在UAC提示中选择了No。
如果我在Administrator cmd >python uac_test.py
中运行上述代码块,它会以某种方式生成2个相同的文件,而不是一个。
我错过了什么吗?任何帮助表示赞赏!
答案 0 :(得分:0)
我相信myClass
已执行,但是在单独的窗口/进程中执行,所以您没有注意到。
尝试使用类似input()
的东西来查看是否确实打开了另一个窗口。