如何检查是否需要特权提升来启动子进程而不先尝试然后失败?
我需要从 python 代码中启动一个子进程命令。在某些情况下它可以正常工作,在其他情况下则需要提升权限;在某些 Windows 系统上,这种情况会导致我的程序冻结。
我想确定是否需要特权升级,而无需尝试首先运行子进程并捕获/捕获任何错误情况。
导致程序冻结的进程被调用;
subprocess.call('路径_文件名_选项',shell=False)
如何检查是否需要特权提升来启动子进程而不先尝试然后失败?
我需要从 python 代码中启动一个子进程命令。在某些情况下它可以正常工作,在其他情况下则需要提升权限;在某些 Windows 系统上,这种情况会导致我的程序冻结。
我想确定是否需要特权升级,而无需尝试首先运行子进程并捕获/捕获任何错误情况。
导致程序冻结的进程被调用;
subprocess.call('路径_文件名_选项',shell=False)
使用 pywin32,类似以下内容应该可以工作......:
import pythoncom import pywintypes import win32api from win32com.shell import shell if shell.IsUserAnAdmin(): ...
是的,看起来 pywin32 确实支持 Python 3。
作者:亚历克斯·马泰利
这也适用于没有 pywin32 的人。
import ctypes
print ctypes.windll.shell32.IsUserAnAdmin()