我正在尝试使用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中的错误?