如何启动一个函数并等待/不等待它取决于它是否是 GUI 应用程序?
我正在寻找一个 Python 函数,在等待新启动的进程完成时,其行为就像 Windows 命令解释器 cmd.exe
一样。现在我正在使用 os.system() ,但是这个函数总是阻塞,即使在启动 GUI 应用程序时也是如此(如果它们是用 C/C++ 编写的,则有一个 WinMain ) code> 函数并与 /SUBSYSTEM:WINDOWS
链接)。
如果我确实希望该函数在启动控制台应用程序时被阻止,但我不希望它在启动 GUI 应用程序时被阻止,我应该使用什么代码来启动外部进程?
I'm looking for a Python function which behaves just like the Windows command interpreter cmd.exe
when it comes to waiting for newly launched processes to finish. Right now I'm using os.system()
but this function always blocks, even when launching GUI applications (which, in case they were written in C/C++, have a WinMain
function and were linked with /SUBSYSTEM:WINDOWS
).
What code should I be using for launching external processes in case I do want the function to block when launching console applications, but I do not want it to block when launching GUI applications?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以编写一个小型 C 包装器/扩展来检查子系统(使用 ImageNtHeader)。如果其他方法都失败,您可以直接解析 PE 标头。
You could write a small C wrapper/extension that checks for the subsystem (using
ImageNtHeader
). If all else fails, you can parse the PE headers directly.Python 没有标准方法来检查可以使用进程 API 启动的可执行文件。
使用
cmd.exe
启动外部命令怎么样?或者在%TEMP%
中创建一个 BAT 脚本并运行它。Python has no standard way to examine the executables you can start with the process API.
How about you start the external command using
cmd.exe
? Or create a BAT script in%TEMP%
and run that.