在Python程序中运行.exe时关闭后台窗口

2 投票
2 回答
912 浏览
提问于 2025-04-15 13:59

下面是一段来自Python程序的代码,它调用了一个名为“demo.exe”的文件。当这个文件被调用时,会弹出一个窗口。有没有办法让“demo.exe”在“后台”运行呢?也就是说,我不想看到这个窗口,只希望“demo.exe”能够运行。


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

“demo.exe”的输出是实时被Python程序使用的,所以我不能在运行Python程序之前就让“demo.exe”先运行。这个程序负责很多即时的后台计算。我现在使用的是Windows XP。

提前谢谢你们!

2 个回答

3

试试这个:

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

感谢另一个StackOverflow的讨论,我觉得这就是你需要的内容:

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

我在我的Windows XP上用Python 2.6测试过,确实可以隐藏窗口。

撰写回答