【发布时间】:2019-07-22 16:55:07
【问题描述】:
我创建了一个小 Python 应用程序,我希望它在进程中间隐藏控制台窗口,因此将其重命名为 .pyw 不会解决问题。
最好有某种功能来最小化窗口,有什么想法吗?
【问题讨论】:
-
向我们展示正在创建不需要的控制台窗口的
subprocess调用。
标签: python python-3.x
我创建了一个小 Python 应用程序,我希望它在进程中间隐藏控制台窗口,因此将其重命名为 .pyw 不会解决问题。
最好有某种功能来最小化窗口,有什么想法吗?
【问题讨论】:
subprocess 调用。
标签: python python-3.x
使用 cmd 有一个很好的方法。 打开命令提示符:
start /min py -x path\test.py
用'x'替换你的python版本,用你的python项目的真实路径替换'path'。这可能会帮助您永远看不到控制台。 你可以像这样在 python 中重新启动你的程序:
import os
os.sysyem('start /min %~dp0test.py)
但我不知道如何在程序中间最小化控制台。
【讨论】:
在 windows 上你可以使用win32api:
from win32 import win32api
from win32 import win32process
from win32 import win32gui
def callback(hwnd, pid):
if win32process.GetWindowThreadProcessId(hwnd)[1] == pid:
# hide window
win32gui.ShowWindow(hwnd, 0)
# find hwnd of parent process, which is the cmd.exe window
win32gui.EnumWindows(callback, os.getppid())
【讨论】:
pip install pywin32 in cmd
Cannot find reference 'win32gui/win32process/win32api' in 'imported module win32' 的错误。导入整个模块并没有解决它。
python Scripts/pywin32_postinstall.py -install,请参阅github repo。或者pip install pypiwin32,请参阅this SO post。我不知道我是怎么安装的了,我大概是 1-2 年前安装的