
import subprocessimport win32guiimport win32coninfo = subprocess.STARTUPINFO()info.DWFlags |= subprocess.STARTF_USESHOWWINDOWinfo.wShowWindow = win32con.SW_SHOWMINIMIZEDx = subprocess.Popen("calc.exe",startupinfo = info) 无论我为wShowWindow提供什么,它都会像往常一样d出.
解决方法 我想你已经想到了这一点,但为了其他读者的利益,这是我的看法:这个问题与calc.exe程序有关,而不是Python和你的代码.为了证明这一点,尝试启动“notepad.exe”(或“wordpad.exe”)并且它将起作用 – 还要注意您可能需要提供目标.exe文件的完整路径,具体取决于它的位置.
具体问题是,根据STARTUPINFO结构,wShowWindow成员:
For GUI processes,the first time ShowWindow is called,its nCmdshow parameter is ignored wShowWindow specifIEs the default value. In subsequent calls to ShowWindow,the wShowWindow member is used if the nCmdshow parameter of ShowWindow is set to SW_SHOWDEFAulT.
所以这意味着,当程序第一次启动并调用ShowWindow()时,它完全忽略了你在STARTUPINFO结构中为wShowWindow传递的内容.然后,在另一次调用ShowWindow()时,如果程序调用ShowWindow()并将其nCmdshow参数设置为SW_SHOWDEFAulT,它将仅使用您提供的值为wShowWindow.
因此,如果程序本身在ShowWindow()中为nCmdshow提供了自己的值,那么似乎不可能隐藏GUI窗口,所以看起来似乎是试错了,看看哪个程序可以做到这一点,例如notepad.exe允许你隐藏它,而calc.exe你不能.
总结以上是内存溢出为你收集整理的python – Windows – 在startupinfo中使用wShowWindow的Popen不会影响显示全部内容,希望文章能够帮你解决python – Windows – 在startupinfo中使用wShowWindow的Popen不会影响显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)