Python 从Windows命令行启动进程时,如何抑制程序GUI?

Python 从Windows命令行启动进程时,如何抑制程序GUI?,python,windows,subprocess,Python,Windows,Subprocess,大家好,我对在这样的网站上提问是新手,所以如果我误入歧途(或者需要澄清),请帮助我。下面是: 我已经构建了一个python脚本,它成功地在Windows7中作为一个新进程(或子进程?这是真的吗?)启动了一个程序。程序及其GUI打开并运行特定的文本文件,完成后,生成的数据保存到.csv,程序和进程终止。相关python代码如下所示: import subprocess import os pw_directory = r"C:\Program Files (x86)\..." #directory

大家好,我对在这样的网站上提问是新手,所以如果我误入歧途(或者需要澄清),请帮助我。下面是:

我已经构建了一个python脚本,它成功地在Windows7中作为一个新进程(或子进程?这是真的吗?)启动了一个程序。程序及其GUI打开并运行特定的文本文件,完成后,生成的数据保存到.csv,程序和进程终止。相关python代码如下所示:

import subprocess
import os
pw_directory = r"C:\Program Files (x86)\..." #directory of theProgram.exe
master_directory = r"C:\Users\...." #path to the .txt file that is executed in theProgram.exe
os.chdir(pw_directory)
my_process = subprocess.Popen([r"theProgram.exe", master_directory])
我的问题是:当程序作为一个新进程启动时,有没有办法抑制它的GUI界面?我只想加载.txt文件并在后台执行它,因为没有理由与GUI交互,因为一切都是自动化的

为了使问题更一般,我没有包括program.exe名称,尽管这可能是必要的信息。不确定。感谢您的建议。

一些windows程序允许在GUI被抑制的情况下从命令行运行它们,但程序之间有所不同

检查特定程序网站/帮助/手册/用户组,或者尝试使用
-h
-help
-help
标志从命令行运行(通常使用
-q
-quiet
或--silent)

另外,有些程序实际上是用于命令行后端处理的GUI前端,因此可能会在命令行上运行不同的命令—文档通常是查找这些命令的地方

很抱歉,这实际上是一个很长的版本,但据我所知,确实没有一个完整的一般的答案

更新 这(来自J.F.塞巴斯蒂安的评论)使我走上了以下轨道:

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = SW_HIDE # i.e. 0 you could also try 11 SW_FORCEMINIMIZE
subprocess.call(["theProgram.exe", etc], startupinfo = startupinfo)

这看起来能满足您的需要。

它不能回答您的问题,但它是相关的:绝对相关,如果我错了,请纠正我。。。在这种情况下,他们似乎试图抑制在执行程序或脚本时弹出的命令行窗口。这是否适用于抑制实际程序的GUI界面?是的,
startupinfo
用于隐藏控制台。我不知道是否可以使用类似的技术来抑制实际程序的窗口(可能不会)。我将与程序管理员联系。该程序本身是一个GUI前端,带有一种专有的脚本语言,可以“秘密”完成所有事情。也许有一个命令我错过了。我只是感到惊讶的是,在windows中没有一种“在后台”运行任何程序的通用方法。微软从来没有提供过一种我所听说过的方法,这取决于个人开发者。有一些技巧可以用于某些程序。你也可以选择“最小化跑步”。