1

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

我已经构建了一个 python 脚本,该脚本在 Windows 7 中成功地将程序作为新进程(或子进程?这是真的吗?)。该程序及其 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 名称,尽管这可能是必要的信息。没有把握。感谢您的任何建议。

4

1 回答 1

1

一些Windows 程序允许它们从命令行运行,而 GUI 被抑制,它因程序而异。

-h -? -help检查特定程序网站/帮助/手册/用户组或尝试使用or标志从命令行运行--help- 那些允许它通常具有命令行帮助的 - 并寻找一个安静的选项,(通常-q --quiet或 --silent 被使用)。

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

抱歉,这实际上是RTFM的长版本,但我所知道的确实没有完全通用的答案。

更新

这个答案(来自 JF Sebastian 的评论)让我步入正轨:

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)

这看起来可以满足您的需求。

于 2013-09-02T19:27:28.310 回答