簡體   English   中英

subprocess.call-無盡的等待命令完成

[英]subprocess.call - endless wait for command to complete

我想通過dxdiag在Windows上獲取顯示卡信息,因此我使用了以下代碼:

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"])

該腳本在%Temp%創建一個bat文件,然后運行該文件並等待命令完成並創建dx_temp.xml 但是在某些PC中,運行dxdiag ,將出現一個提示對話框,停止命令繼續執行。 在這種情況下,將無休止地等待命令完成。 如何強制subprocess.call跳過所有這些提示?

Windows 8上的Python 2.7.6

子進程只能啟動其他進程。 它不能告訴其他進程如何處理(除了允許您通過STDIN傳遞數據之外)。

dxdiag在子進程的控制范圍之外在內部生成那些對話框。

可靠地停止該對話框的唯一方法是找出彈出的對話框並找到特定於dxdiag的標志以禁用該對話框(如果存在)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM