gpt4 book ai didi

python - Windows - 在启动信息中使用 wShowWindow 弹出不影响显示

转载 作者:可可西里 更新时间:2023-11-01 14:25:29 26 4
gpt4 key购买 nike

我正在尝试做一些简单的事情,比如让 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成员:

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() , 它完全忽略你为 wShowWindow 传递的任何内容在STARTUPINFO结构体。然后,再次调用 ShowWindow() , 如果程序调用 ShowWindow(),它将使用您为 wShowWindow 提供的值及其 nCmdShow参数设置为 SW_SHOWDEFAULT .

因此,如果程序本身为 nCmdShow 提供了自己的值,则隐藏 GUI 窗口似乎是不可能的。在 ShowWindow() ,因此要查看哪些程序可以隐藏它似乎只是反复试验,例如 notepad.exe 允许您隐藏它,而 calc.exe 则不能。

关于python - Windows - 在启动信息中使用 wShowWindow 弹出不影响显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com