9

数秒ごとにサブプロセスを開く Windows 7 で Python スクリプトを実行しています。このサブプロセスは、ウィンドウを開いてフォーカスを取得し、スクリプトの実行中にユーザーが通常の作業を行おうとする試みを妨害します。サブプロセス コード自体を変更することはできません。Pythonスクリプトによって開かれたすべてのサブプロセスを非フォーカスとして指定する方法はありますか?

明確化:ウィンドウを開いて表示/選択可能にする必要がありますが、進行中の他のすべてのものにすぐにジャンプする必要はありません。つまり、強制的にフォアグラウンドに移動するのではなく、バックグラウンドで開く必要があります。

4

2 に答える 2

5

これが私が最後にした方法です

# Hide the cmd prompt window
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
p = subprocess.Popen(args, startupinfo=startupinfo)
于 2012-05-26T15:35:16.493 に答える
1

subprocess.callを使用すると、さまざまなフラグを使用してプロセスを実行できます。

このサンプルでは、​​UI をまったく使用せずにコンソール アプリを実行します。

>>> import shlex, subprocess
>>> subprocess.call("C:\Windows\some_console_app.exe", shell=True)
于 2012-05-26T15:41:08.507 に答える