从Python程序运行.exe时杀死后台窗口

时间:2009-09-01 00:42:08

标签: python executable

以下是来自调用“demo.exe”文件的python程序的一行。调用demo.exe时会打开一个窗口,有没有办法让demo.exe在“后台”运行?也就是说,我不希望它的窗口显示,我只想运行demo.exe。


p = subprocess.Popen(args = "demo.exe", stdout = subprocess.PIPE)

demo.exe的输出是python程序实时使用的,所以demo.exe不是我可以在运行python程序之前运行的东西。 demo.exe处理大量的动态后端计算。我正在使用Windows XP。

提前感谢!

2 个答案:

答案 0 :(得分:4)

感谢another StackOverflow thread,我认为这就是您所需要的:

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
p = subprocess.Popen(args = "demo.exe", stdout=subprocess.PIPE, startupinfo=startupinfo)

我在XP上测试了我的Python 2.6,确实隐藏了窗口。

答案 1 :(得分:3)

试试这个:

from subprocess import Popen, PIPE, STARTUPINFO, STARTF_USESHOWWINDOW
startupinfo = STARTUPINFO()
startupinfo.dwFlags |= STARTF_USESHOWWINDOW
p = Popen(cmdlist, startupinfo=startupinfo, ...)