我在windows 7上運行一個Python腳本,每隔幾秒鐘打開一個子進程。這個子進程打開一個窗口並抓住焦點,中斷用戶在腳本運行時正常工作的任何嘗試。我無法修改子進程代碼本身。有沒有辦法將python腳本打開的所有子進程指定爲不重點?防止關注python窗口
CLARIFICATION:我需要打開窗口並可以查看/選擇,只是不會立即跳到所有正在發生的事情上。換句話說,它需要在後臺打開,而不是強迫自己進入前臺。
我在windows 7上運行一個Python腳本,每隔幾秒鐘打開一個子進程。這個子進程打開一個窗口並抓住焦點,中斷用戶在腳本運行時正常工作的任何嘗試。我無法修改子進程代碼本身。有沒有辦法將python腳本打開的所有子進程指定爲不重點?防止關注python窗口
CLARIFICATION:我需要打開窗口並可以查看/選擇,只是不會立即跳到所有正在發生的事情上。換句話說,它需要在後臺打開,而不是強迫自己進入前臺。
這裏是我是如何做到這最後
# Hide the cmd prompt window
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
p = subprocess.Popen(args, startupinfo=startupinfo)
此示例運行與各種標誌的過程中,沒有UI任何執行控制檯應用程序:
>>> import shlex, subprocess
>>> subprocess.call("C:\Windows\some_console_app.exe", shell=True)
TL; DR,使用'startupinfo.wShowWindow = 4'(僅在Windows 7上測試) wShowWindow值顯然可能比只是subprocess.SW_HIDE。可用值記錄在[ShowWindow]的Windows文檔中(https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548(v = vs.85).aspx)。相關值爲SW_SHOWNOACTIVATE,該枚舉的值爲4。 –