python – Windows – 在startupinfo中使用wShowWindow的Popen不
我正在尝试做一些简单的事情,比如让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成员:
所以这意味着,当程序第一次启动并调用ShowWindow()时,它完全忽略了你在STARTUPINFO结构中为wShowWindow传递的内容.然后,在另一次调用ShowWindow()时,如果程序调用ShowWindow()并将其nCmdShow参数设置为SW_SHOWDEFAULT,它将仅使用您提供的值为wShowWindow. 因此,如果程序本身在ShowWindow()中为nCmdShow提供了自己的值,那么似乎不可能隐藏GUI窗口,所以看起来似乎是试错了,看看哪个程序可以做到这一点,例如notepad.exe允许你隐藏它,而calc.exe你不能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |