所以,我有一个运行Tkinter GUI的python脚本,它有一个调用C编写的可执行文件的button小部件。但是,每次单击该button,运行该C可执行文件的控制台都会popup,然后在完成运行后closures。 我使用可执行文件调用
import subprocess subprocess.call[args]
如何隐藏popup? 因为我正在使用GUI,如果控制台没有popup,它也不好。
FillConsoleOutputCharacter / WriteConsoleOutput和特殊字符
如何将命令提示符的输出redirect到Windows上的DebugView?
基础知识在Python中创build一个MML控制台
Debian:通过蓝牙转发login控制台
使用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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。