Я хотел получить информацию о карте дисплея в окнах через 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