我试图做一些简单的像得到的calc.exe要启动最小化,但它没有发生。
import subprocess
import win32gui
import win32con
info = subprocess.STARTUPINFO()
info.dwFlags |= subprocess.STARTF_USESHOWWINDOW
info.wShowWindow = win32con.SW_SHOWMINIMIZED
x = subprocess.Popen("calc.exe", startupinfo = info)
它弹出与往常一样,不管什么我提供wShowWindow
。
我想你已经想通了这一点,但对于这里其他读者的利益是我的看法:
这个问题有什么与做专calc.exe
程序,而不是Python也不是你的代码。 为了证明这一点,尝试推出“的notepad.exe”(或“wordpad.exe”),也将努力-也注意,您可能需要提供的完整路径目标.exe
取决于它是文件。
具体什么是错的,是根据STARTUPINFO
结构中, wShowWindow
成员:
用于GUI的过程中,第一次的ShowWindow被调用,其参数的nCmdShow忽略wShowWindow指定的默认值。 在后续调用的ShowWindow,如果的ShowWindow的的nCmdShow参数设置为SW_SHOWDEFAULT使用wShowWindow构件。
所以,这是什么意思是,第一次启动程序,并调用ShowWindow()
它完全忽略不管你通过在wShowWindow
在STARTUPINFO
结构。 然后,当再次调用ShowWindow()
它只会当程序调用使用你提供的价值wShowWindow ShowWindow()
与它nCmdShow
设为参数SW_SHOWDEFAULT
。
所以,这似乎是不可能的隐藏GUI窗口,如果程序本身提供了其自身的价值nCmdShow
中ShowWindow()
所以它似乎只是试验和错误,查看哪些程序做到这一点,如Notepad.exe,您可以它隐藏,而CALC.EXE你不能。