【问题标题】:Running a commandline application from GUI silently从 GUI 静默运行命令行应用程序
【发布时间】:2012-04-26 03:53:42
【问题描述】:

我想运行特定的命令行应用程序:

ffmpeg -i video.mp4 audio.mp3

我通过 GUI 运行命令,当控制台窗口不存在时,ffmpeg 进程正在新的 cmd 窗口中运行。

测试人员发现“出现的黑色窗口”很吓人且不友好。

如何在不出现任何可见窗口的情况下运行应用程序? os.system()subprocess.Popen()subprocess.call() 都会启动 cmd 窗口。

如果重要的话,我正在使用 pyqt4 和 py2exe。我的目标用户是 Windows 操作系统用户。

【问题讨论】:

标签: python subprocess py2exe


【解决方案1】:

ActiveState 的这个秘诀可能会解决你的问题:

http://code.activestate.com/recipes/409002/

Python 2.7 需要稍作改动。见How do I eliminate Windows consoles from spawned processes in Python (2.7)?

【讨论】:

    【解决方案2】:

    START 命令启动ffmpeg。如果使用/B 开关,则不会显示任何命令窗口。

    【讨论】:

      【解决方案3】:

      使用subprocess.Popen(或call)并将stdout/stderr重定向到某处。它们目前已连接到您自己进程的 stdout 和 stderr,这就是它们通过的原因。

      如果您需要能够与您的 GUI 事件循环完美集成的东西,请使用 Twisted 的进程启动工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 2011-11-04
        相关资源
        最近更新 更多