如何在Python中运行可执行文件而不popup可执行文件的控制台?

所以,我有一个运行Tkinter GUI的python脚本,它有一个调用C编写的可执行文件的button小部件。但是,每次单击该button,运行该C可执行文件的控制台都会popup,然后在完成运行后closures。 我使用可执行文件调用

import subprocess subprocess.call[args] 

如何隐藏popup? 因为我正在使用GUI,如果控制台没有popup,它也不好。

使用startupinfo subprocess.Popen() 类的 startupinfo参数。

 startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW startupinfo.wShowWindow = subprocess.SW_HIDE subprocess.Popen(command, startupinfo=startupinfo) 

如果您希望将参数传递给进程,则应将其作为数组传递给popen

 subprocess.Popen(['program.exe','arg1','arg2'], startupinfo=startupinfo) 

编辑:
正如Felix在评论中指出的那样,如果你希望孩子根本没有控制台,你应该使用DETACHED_PROCESS标志和subprocess.call

如此 MSDN页面中所述:

DETACHED_PROCESS 0x00000008 – 对于控制台进程,新进程不会继承其父级控制台(缺省值)。 新进程可以在稍后调用AllocConsole函数来创建控制台。 有关更多信息,请参阅创建控制台。 该值不能与CREATE_NEW_CONSOLE一起使用。

 DETACHED_PROCESS = 0x00000008 subprocess.call('program.exe', creationflags=DETACHED_PROCESS)