微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

import subprocess subprocess.call[args]

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

如何禁止Windows命令输出

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] 举报,一经查实,本站将立刻删除。

相关推荐