如何判断启动进程是否需要提升权限,而不通过失败检查

3 投票
1 回答
616 浏览
提问于 2025-04-17 06:02

我想知道怎么检查启动一个子进程是否需要提升权限,而不是先尝试一下再失败。

我需要在Python代码中启动一个子进程命令。在某些情况下,这个命令可以正常运行,但在其他情况下却需要更高的权限;而在某些Windows系统上,这种情况会导致我的程序卡住。

我希望能在不先尝试运行子进程的情况下,判断是否需要提升权限,也不想捕捉或处理任何错误。

导致程序卡住的进程是通过以下方式调用的:

subprocess.call('path _ filename _ options',shell=False)

1 个回答

4

使用pywin32的话,下面这样的代码应该可以正常运行...:

import pythoncom
import pywintypes
import win32api
from win32com.shell import shell

if shell.IsUserAnAdmin():
   ...

而且,看来pywin32是支持Python 3的。

作者:Alex Martelli

另外,这段代码是给没有使用pywin32的人准备的。

import ctypes
print ctypes.windll.shell32.IsUserAnAdmin()

撰写回答