我在 Windows 7 上运行一个 Python 脚本,每隔几秒就会打开一个子进程。此子进程打开一个窗口并获取焦点,从而在脚本运行时中断用户进行正常工作的任何尝试。我没有能力修改子流程代码本身。有没有办法将 python 脚本打开的所有子进程指定为非焦点?
澄清:我需要打开窗口并且可以查看/选择,只是不要立即跳到正在发生的所有其他事情之上。换句话说,它需要在后台打开,而不是强迫自己进入前台。
我在 Windows 7 上运行一个 Python 脚本,每隔几秒就会打开一个子进程。此子进程打开一个窗口并获取焦点,从而在脚本运行时中断用户进行正常工作的任何尝试。我没有能力修改子流程代码本身。有没有办法将 python 脚本打开的所有子进程指定为非焦点?
澄清:我需要打开窗口并且可以查看/选择,只是不要立即跳到正在发生的所有其他事情之上。换句话说,它需要在后台打开,而不是强迫自己进入前台。
这是我最后的做法
# Hide the cmd prompt window
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
p = subprocess.Popen(args, startupinfo=startupinfo)
您可以使用subprocess.call运行具有各种标志的进程
此示例在没有任何 UI 的情况下执行控制台应用程序:
>>> import shlex, subprocess
>>> subprocess.call("C:\Windows\some_console_app.exe", shell=True)