python - 如何从 python 以管理员身份运行 explorer.exe
问题描述
背景:
我想以管理员身份从 python 运行 ESET Internet Security gui 文件。它被命名为 egui.exe。所以在它的属性中,在兼容性下,我选中了“以管理员身份运行这个程序”复选框,所以它总是以管理员身份运行。
另一个注意事项是,由于某种原因,如果我像这样在 python 中运行这个文件,这似乎超出了我的范围:
os.startfile("c:\\program files\\ESET\\ESET Security\\egui.exe")
或者
os.system("c:\\program files\\ESET\\ESET Security\\egui.exe")
它会冻结,什么也不做。我在 CMD 中测试了相同的方法,如下所示:
c:\Program Files\ESET\ESET Security>egui.exe
c:\Program Files\ESET\ESET Security>start egui.exe
但这两者都会导致 CMD 冻结并且什么也不做,甚至 ctrl + c 也不会中断它,并且 CMD 应该关闭。
我做了什么:
以某种方式起作用的方法是通过 explorer.exe 运行 exe 文件:
os.system('explorer.exe "c:\\program files\\ESET\\ESET Security\\egui.exe"')
这不会冻结,但问题是因为我希望 egui.exe 以管理员身份运行,它会触发 UAC 提示,这是不可接受的,因为该程序应该是使用 GUI 自动化的测试。
问题:
当我的程序本身以管理员身份运行时,我可以以管理员身份运行其他程序而不会触发 UAC 提示。但是我不能通过 explorer.exe 运行它,我认为这是因为 explorer.exe 本身不是管理员。所以问题是我如何以管理员身份运行 explorer.exe?由于显而易见的原因,每次都输入密码也是不可接受的。
PS:很遗憾,explorer.exe 的属性中没有兼容性设置。
解决方案
推荐阅读
- c# - “使用 SQLite;” 变灰
- json - Python:从列表而不是字典的 API 调用中打印某些项目
- vue.js - Vue+Vuex+Axios API 调用处理多个更新
- google-sheets - 如何在 Google 表格的数据透视表中使用 VLOOKUP 作为计算字段?
- c - 预期为 'char **' 但参数的类型为 'char (*)[25]'
- python - Scipy 拟合向量中的参数
- javascript - 无法避免“onbeforeunload”事件的默认警告
- latex - Pandoc tex 到 docx 的转换在数学模式下忽略空格命令
- javascript - 如何向 Chart.JS 工具提示页脚添加文本注释/注释?
- c - strncpy 和 snprintf 之间的区别?