gpt4 book ai didi

python - 使用 ctypes.windll.shell32.ShellExecuteW 从 Python 脚本中请求 UAC 提升

转载 作者:行者123 更新时间:2023-12-04 13:45:41 24 4
gpt4 key购买 nike

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 提示中选择了否。

如果我在管理员 cmd 中运行上述代码块, >python uac_test.py ,不知何故它生成了 2 个相同的文件,而不是一个。

我错过了什么吗?任何帮助表示赞赏!

最佳答案

我相信 myClass WAS 执行,但在一个单独的窗口/进程中,所以你没有注意到。

尝试使用类似 input() 的东西看看另一个窗口是否确实打开了。

关于python - 使用 ctypes.windll.shell32.ShellExecuteW 从 Python 脚本中请求 UAC 提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48917704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com