尝试运行带参数的应用程序时,subprocess.call返回0

时间:2018-03-16 12:09:01

标签: python subprocess

我正在尝试使用Python运行CPU-Z以在系统文件中保存系统报告。此代码在Win10中调用UAC,如果cmd没有管理员权限,则打开第二个cmd窗口:

import subprocess
import ctypes
import sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    subprocess.call(['cpuz_x32.exe', '-txt=report'])
else:
    # Re-run the program with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

当我在Python解释器中时,返回0。但是,没有创建report.txt个文件。 cpuz_x32.exe与我开始翻译的目录位于同一目录。

这是在Windows10上。 subprocess.call要求提升cmd,因此这称为UAC。

然后我决定在我的一个WinXP虚拟机中尝试这个代码。那里没有UAC。脚本运行良好。没问题。 report.txt文件已创建。这是Win10 cmd,子进程还是Python 3.4.3中的错误?

0 个答案:

没有答案