【问题标题】:Python hide console windowPython隐藏控制台窗口
【发布时间】:2019-07-22 16:55:07
【问题描述】:

我创建了一个小 Python 应用程序,我希望它在进程中间隐藏控制台窗口,因此将其重命名为 .pyw 不会解决问题。

最好有某种功能来最小化窗口,有什么想法吗?

【问题讨论】:

  • 向我们展示正在创建不需要的控制台窗口的subprocess 调用。

标签: python python-3.x


【解决方案1】:

使用 cmd 有一个很好的方法。 打开命令提示符:

start /min py -x path\test.py

用'x'替换你的python版本,用你的python项目的真实路径替换'path'。这可能会帮助您永远看不到控制台。 你可以像这样在 python 中重新启动你的程序:

import os
os.sysyem('start /min %~dp0test.py)

但我不知道如何在程序中间最小化控制台。

【讨论】:

    【解决方案2】:

    在 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())
    

    【讨论】:

    • 太棒了,感谢您的回复。但我找不到任何地方或如何实际安装该 api。对不起,愚蠢的问题,我是初学者。
    • 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 年前安装的
    • 都试过了,都没有用:(
    猜你喜欢
    • 2022-10-12
    • 1970-01-01
    • 2012-10-14
    • 2010-10-20
    • 2011-04-03
    • 2023-03-28
    • 1970-01-01
    • 2015-08-23
    相关资源
    最近更新 更多