【问题标题】:How to hide console with Popen on Windows?如何在 Windows 上使用 Popen 隐藏控制台?
【发布时间】:2012-05-25 03:10:03
【问题描述】:

我找到了这个话题,我发现这是一个解决方案:

Module subprocess has no attribute 'STARTF_USESHOWWINDOW'

但是当我运行代码时,实际情况有所不同。 :/

  1. 运行我的代码:

    # Get the environment variables from OO-Python using subprocess
    oo_py_exec = os.path.join(oo_dir, r'program\python.exe')
    python_oo_script = ' ;'.join([
        "-cimport os",
        "print(os.environ['URE_BOOTSTRAP'])",
        "print(os.environ['UNO_PATH'])",
        "print(os.environ['PATH'])",
    ])
    
    subprocess.STARTF_USESHOWWINDOW
    info = subprocess.STARTUPINFO()
    info.dwFlags = subprocess.STARTF_USESHOWWINDOW
    info.wShowWindow = subprocess.SW_HIDE
    process = subprocess.Popen([oo_py_exec, python_oo_script],
        stdout=subprocess.PIPE, startupinfo=info)
    result = process.communicate()
    

显示控制台。

  1. 从链接运行代码:

    kwargs = {}
    if subprocess.mswindows:
         su = subprocess.STARTUPINFO()
         su.dwFlags |= subprocess.STARTF_USESHOWWINDOW
         su.wShowWindow = subprocess.SW_HIDE
         kwargs['startupinfo'] = su 
    subprocess.Popen("cmd.exe", **kwargs)
    

控制台也显示了!

win xp, py 2.6

【问题讨论】:

  • 不启动子进程时是否显示控制台?
  • 你不能写你的脚本让它直接由OO的Python运行吗?

标签: python windows console hide popen


【解决方案1】:

您不应该使用python.exe,而应使用pythonw.exe - 它们是相同的,除了一个显示控制台,另一个不显示(虽然不知道w 代表什么)。

【讨论】:

  • 我不能使用 pythonw.exe,因为 OpenOffice.org 没有它。
  • 我担心 python.exe 会使用 Windows API 自己打开一个控制台窗口(即AllocConsole 大概),在这种情况下,据我所知SW_HIDE 是非常没用的,因为 Windows 本身没有为它创建一个命令行开始。无论如何我的猜测。
  • 我发现了类似的主题:stackoverflow.com/questions/3390762/…,其中接缝的解释非常简单,但仍然不起作用。 ://
  • 我认为 Voo 是对的。您在这里谈论的是两个 Python 实例:一个运行您的子进程 一个运行您上面的代码。我相信是后者打开了控制台。
  • @Matthew Trevor 好的,我现在是窗口的原因,但我仍然不知道如何隐藏它:(
【解决方案2】:

尝试添加以下行: info.wShowWindow=11 这隐藏了控制台窗口。 遗留问题: 焦点改变了。不知道为什么,但假设你运行这个 python 代码,调用一个 .exe 同时编辑一个文档。不好玩,因为很多时候你的输入会误入歧途

【讨论】:

  • 11SW_FORCEMINIMIZE
猜你喜欢
  • 2023-03-09
  • 2017-09-20
  • 1970-01-01
  • 2015-01-26
  • 2018-06-30
  • 2017-04-22
  • 1970-01-01
  • 2022-11-17
  • 2011-01-09
相关资源
最近更新 更多