システムコールでコンソールウィンドウを非表示にする
os.system() や subprocess.call() などの関数を使用してシステムコマンドを実行する場合、コンソール ウィンドウが一時的に表示される場合があります。これは状況によっては望ましくない場合があります。
これを軽減するために、サブプロセスの STARTUPINFO プロセスにはコンソール ウィンドウを非表示にするオプションが用意されています。方法は次のとおりです:
import subprocess si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW #si.wShowWindow = subprocess.SW_HIDE # default subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
または、作成フラグを使用してウィンドウの作成を無効にすることもできます:
subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.CREATE_NO_WINDOW)
上記のメソッドはコンソール ウィンドウの作成を抑制しますが、プロセスはコンソール I の標準ハンドルを保持します。 /O.
コンソールを完全に削除するには、DETACHED_PROCESS フラグを使用します。
subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.DETACHED_PROCESS)
この場合、子の標準ハンドルは無効化されますが、開いている他のファイルにリダイレクトすることも、またはパイプ。
以上がPython でシステム コールを実行するときにコンソール ウィンドウを非表示にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。