静默地从GUI运行命令行应用程序

时间:2012-04-25 18:14:35

标签: python subprocess py2exe

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

ffmpeg -i video.mp4 audio.mp3

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

测试人员发现“出现的黑色窗口”可怕且不便于用户使用。

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

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

3 个答案:

答案 0 :(得分:1)

ActiveState上的这个食谱可以解决您的问题:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

使用subprocess.Popen(或call)并在某处重定向stdout / stderr。他们目前迷上了你自己的进程的stdout和stderr,这就是他们通过的原因。

如果您需要能够与GUI事件循环很好地集成的东西,请使用Twisted的流程启动功能。