防止python窗口被聚焦

Ell*_*iot 9 python subprocess focus windows-7

我在Windows 7上运行Python脚本,每隔几秒就打开一个子进程.此子进程打开一个窗口并抓取焦点,破坏用户在脚本运行时执行正常工作的任何尝试.我没有能力修改子进程代码本身.有没有办法将python脚本打开的所有子进程指定为非聚焦?

澄清:我需要打开窗口并且可以查看/选择,只是不要立即跳到其他正在进行的操作上.换句话说,它需要在后台打开,而不是强迫自己进入前台.

Nic*_*ood 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)
Run Code Online (Sandbox Code Playgroud)

  • TL;DR,使用`startupinfo.wShowWindow = 4`(仅在Windows 7 上测试) wShowWindow 值显然可以采用比subprocess.SW_HIDE 更多的值。可用值记录在 [ShowWindow](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548(v=vs.85).aspx) 的 windows 文档中。相关值为 SW_SHOWNOACTIVATE,该枚举的值为 4。 (2认同)