myClass在“./output”文件夹中生成一个XLSX文件。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
中运行上面的代码块,不知何故,它会生成两个相同的文件,而不是一个。
我是不是遗漏了什么?如有任何帮助,我们不胜感激!
发布于 2020-04-24 22:34:35
我相信myClass
是在一个单独的窗口/进程中执行的,所以你没有注意到。
尝试使用诸如input()
之类的命令来查看是否确实打开了另一个窗口。
https://stackoverflow.com/questions/48917704
复制相似问题