Исках да получа информация за картата за показване на Windows чрез dxdiag
, така че използвах следния код:
import os, sys, subprocess
b = open(os.environ["TMP"] +"\\dx_info.bat", "w")
cmd = r'''@ECHO OFF
SETLOCAL
dxdiag /x dx_temp.xml
DEL "%~f0"'''
b.write(cmd)
b.close()
os.chdir(os.environ["TMP"])
subprocess.call([os.environ["TMP"] +"\\dx_info.bat"])
този скрипт създава bat файл в %Temp%
, след което го стартира и изчаква командата да завърши и да създаде dx_temp.xml
. Но при някои компютри, след стартиране на dxdiag
, диалогов прозорец с подкана спира командата да продължи. В тази ситуация възниква безкрайно чакане за завършване на командата. Как мога да принудя subprocess.call
да пропусне всички тези подкани?
Python 2.7.6 на Windows 8
subprocess.call(cmd, shell=True, cwd=tempfile.gettempdir())
също може да работи (без временни файлове иchdir()
) - person jfs   schedule 24.02.2014