如何在没有可执行文件的弹出控制台的情况下在Python中运行可执行文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在没有可执行文件的弹出控制台的情况下在Python中运行可执行文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1317字,纯文字阅读大概需要2分钟。
内容图文
![如何在没有可执行文件的弹出控制台的情况下在Python中运行可执行文件?](/upload/InfoBanner/zyjiaocheng/789/e85774eccf0b41e69468ce6d8279ddaa.jpg)
参见英文答案 > How do I hide the console when I use os.system() or subprocess.call()? 4个
所以,我有一个运行Tkinter GUI的python脚本,它有一个调用C语言可执行文件的按钮小部件.但是,每当我点击该按钮时,运行该C可执行文件的控制台会弹出,然后在运行完毕后关闭.我使用调用可执行文件
import subprocess
subprocess.call[args]
如何隐藏弹出窗口?因为我正在使用GUI,如果控制台无处可出,那就太好了.
解决方法:
使用subprocess.Popen()class的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.
如this MSDN页面中所述:
DETACHED_PROCESS 0x00000008 – For console processes, the new process does not inherit its parent’s
console (the default). The new process can call the AllocConsole
function at a later time to create a console. For more information,
see Creation of a Console. This value cannot be used with
CREATE_NEW_CONSOLE.
DETACHED_PROCESS = 0x00000008
subprocess.call('program.exe', creationflags=DETACHED_PROCESS)
内容总结
以上是互联网集市为您收集整理的如何在没有可执行文件的弹出控制台的情况下在Python中运行可执行文件?全部内容,希望文章能够帮你解决如何在没有可执行文件的弹出控制台的情况下在Python中运行可执行文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。