【发布时间】:2018-01-22 01:26:36
【问题描述】:
所以,我有一个运行 Tkinter GUI 的 python 脚本,它有一个按钮小部件,该小部件调用用 C 编写的可执行文件。但是,每次我单击该按钮时,都会弹出一个运行该 C 可执行文件的控制台,然后在之后关闭运行完毕。我使用
调用可执行文件import subprocess
subprocess.call[args]
如何隐藏该弹出窗口?因为我使用的是 GUI,如果控制台无处弹出,那就有点不好了。
【问题讨论】:
-
没有“C 可执行文件”这样的东西。如果您的意思是最初用 C 编写并现在编译的可执行文件,那么它是用 C 编写的这一事实与手头的问题无关。
-
我猜这是在 Windows 上?然后这是 win32 的限制...应用程序标记为
gui或console,对于后者,如果还没有一个新控制台,则默认附加一个新控制台。您可以自己调用CreateProcess(),传递DETACHED_PROCESS创建标志来避免它。 -
@FedericoklezCulloca 哦,我不知道那个 *.exe 文件的名称。因此,我将其命名为 C 可执行文件。但是,是的,这就是我的意思,用 C 语言编写的可执行文件,经过编译。
-
@fahadh4ilyas 如果我的假设是正确的——添加一个 windows 或 winapi 标签。我不知道如何从 python 调用
CreateProcess(),但其他人可能知道。顺便说一句,使用哪种语言编译“本机”可执行文件确实无关紧要。 -
如果不重复,相关:stackoverflow.com/q/7006238/694576